【Kubernetes知识点问答题】kubernetes 控制器
目录
3. Deployment 控制器是如何工作的,举例说明其常见用途。
在 Kubernetes(K8s)中,控制器是整个系统的“大脑”,它负责确保集群的实际状态与用户定义的期望状态保持一致。理解 Kubernetes 中各类控制器及其作用,对于高效管理容器化应用至关重要。
1. 说明 K8s 控制器的作用?
Kubernetes 控制器通过持续监控集群的公共状态(current state),并将其与期望状态(desired state)进行比较,从而做出调整。期望状态通常由资源对象的 spec 字段定义。每个控制器专注于管理某一类型的资源,例如 Pod、ReplicaSet 或 StatefulSet。
简言之,控制器就像 Kubernetes 的自我调节机制,确保集群始终按照预期运行。
2. 什么是 ReplicaSet,说明它的主要用途。
ReplicaSet 用于管理 Pod 副本数量,确保其始终与预设值一致。主要用途包括:
-
持续监控 Pod 状态。
-
当 Pod 异常退出或失败时,ReplicaSet 会自动创建新的 Pod 以维持副本数量,确保服务高可用性。
尽管 ReplicaSet 可以单独使用,但 Kubernetes 官方建议通过 Deployment 来管理 Pod 副本,因为 Deployment 提供了声明式更新和历史记录功能,便于升级与回滚。
3. Deployment 控制器是如何工作的,举例说明其常见用途。
Deployment 是更高级的控制器,它在管理 Pod 和 ReplicaSet 的基础上增加了声明式更新功能。通过 Deployment,管理员只需定义目标状态,K8s 就会逐步调整集群以达到期望状态。
常见用途
-
创建 Deployment 并上线 ReplicaSet。
-
更新 PodTemplateSpec,实现应用的滚动更新。
-
回滚到历史版本,快速恢复应用。
-
扩展 Deployment 规模,应对更多负载。
Deployment 提供了更灵活、更安全的方式来管理 Pod 和应用升级。
4. 解释 DaemonSet,列举其使用场景。
DaemonSet 用于在集群的每个节点(或指定节点)上运行一个 Pod 副本。它的特点是:
-
节点加入集群时,自动在新节点上创建 Pod。
-
节点离开集群时,Pod 会随之回收。
-
删除 DaemonSet 时,会删除其创建的所有 Pod。
使用场景
-
部署集群守护进程,如系统监控或日志收集工具。
-
在每个节点上运行监控或采集 Agent。
DaemonSet 确保每个节点都有必要的服务或守护进程运行,是运维管理的利器。
5. 什么是 StatefulSet,其主要作用是什么?
StatefulSet 专门用于管理有状态应用。与 Deployment 类似,它管理一组基于相同容器规约的 Pod,但 StatefulSet 对每个 Pod 分配一个唯一且持久的标识。
特点与作用
-
每个 Pod 都有固定的标识符,不可互换。
-
与持久存储(Persistent Volume)结合使用时,Pod 重启或替换不会丢失数据。
-
适用于数据库、缓存、消息队列等有状态应用。
StatefulSet 解决了有状态服务的持久化和可靠性问题,使应用能够安全稳定地运行在 Kubernetes 集群中。
6. 说明 Job 与 CronJob 的功能。
-
Job:用于执行短暂的一次性任务。Job 会创建 Pod 并保证其成功完成一次任务。典型应用包括数据迁移或批量计算任务。Job 负责批量处理短暂的一次性任务,仅执行一次,并保证处理的一个或者多个 Pod 成功结束。
-
CronJob:用于定时任务,可按照预设时间周期重复执行,例如每日备份、定期生成报表等。
Job 和 CronJob 让 Kubernetes 不仅适合长期运行的服务,也能管理周期性和批处理任务,实现全生命周期的任务调度。
总结
Kubernetes 控制器是保证集群健康和应用稳定的核心机制。
-
ReplicaSet:保持 Pod 副本数稳定。
-
Deployment:支持声明式更新和回滚。
-
DaemonSet:在每个节点部署守护进程。
-
StatefulSet:管理有状态应用,提供持久标识和存储。
-
Job / CronJob:管理一次性和定时任务。
更多推荐

所有评论(0)