在 Kubernetes 集群中,Pod、Deployment 与 ReplicaSet 这三类资源对象之间存在怎样的层级与管控关系?请说明各自职责及它们如何协同工作。
考察说明
考查对 Kubernetes 核心资源对象及其相互关系的理解程度,验证是否掌握应用部署的基本模型。
回答思路
- 【回答框架 1】Pod 是 Kubernetes 中最小、最基础的调度与运行单元,直接承载一个或多个容器,共享网络命名空间和存储卷,生命周期短暂且可被随时重建。
- 【回答框架 2】ReplicaSet 的核心职责是维持指定数量的 Pod 副本稳定运行,通过标签选择器匹配并管理 Pod,当 Pod 数量不足或多余时自动创建或删除,确保期望副本数始终一致。
- 【回答框架 3】Deployment 是更上层的控制器,负责管理 ReplicaSet 并支持声明式更新。每次变更镜像或配置时,Deployment 会创建新的 ReplicaSet,逐步替换旧副本,实现滚动更新、回滚以及扩缩容操作。
- 【回答框架 4】三者关系为层层控制:Deployment 控制 ReplicaSet,ReplicaSet 控制 Pod。Deployment 不直接操作 Pod,而是通过 ReplicaSet 间接管理,这种层级结构既保证了更新过程的可靠性,又提供了故障自愈能力。
- 【关键点 1】Deployment 管理 ReplicaSet,ReplicaSet 管理 Pod,形成自上而下的控制链。
- 【关键点 2】ReplicaSet 通过标签选择器维持 Pod 副本数量,确保期望状态与当前状态一致。
- 【关键点 3】Deployment 提供滚动更新和回滚能力,ReplicaSet 负责具体副本数量控制,Pod 是实际工作负载载体。
- 【易错点 1】不能把 Pod 视为稳定资源,其 IP 和名称会随重建变化,应通过 Service 暴露访问。
- 【易错点 2】ReplicaSet 本身不具备滚动更新功能,直接修改其 Pod 模板不会触发逐个替换,需借助 Deployment 实现。