第五章 Kubernetes Pod控制器 第一节 控制器基础
本章节分为两部分展开讲解:第一部分为控制器的核心概念与工作原理,第二部分为Kubernetes原生自带Pod控制器的详细功能讲解。
1. 控制器的核心定义与定位
Kubernetes 中定义了一系列控制器,是集群的核心灵魂与内部管理核心大脑,核心作用是确保集群当前状态和用户定义的期望状态保持一致,这也是Kubernetes能够快速部署应用、实现应用水平扩展的核心底层逻辑。
用户通过资源清单(如Pod、Deployment的配置)定义的spec字段,即为用户期望的集群运行状态,但期望不一定能最终实现:例如如果Pod配置了不存在的镜像,或集群节点资源不足以支撑期望的Pod数量,控制器也无法强行达成期望。
2. 控制器的核心作用
控制器涵盖多种类型,包括Pod控制器、Node控制器等,本节主要讲解Pod控制器的相关基础,其余控制器后续可延伸学习。控制器是实现Pod自愈、集群自动化管理的核心载体,典型作用包括:
- 以ReplicaSet(RS)控制器为例:负责维护集群中Pod的副本数量,若期望运行4个Pod,但因节点故障当前仅3个Pod在运行,RS控制器会自动创建新的Pod补足数量;若Pod所在节点崩溃,控制器也会在其他可用节点上重建Pod,保障副本数量符合期望。
- 以Node控制器为例:负责监控集群节点的运行状态,当节点出现可恢复故障时,会自动执行修复流程,例如此前提到的
default命名空间下的Service被误删后会自动恢复,就是控制器自愈能力的体现。 - 若Pod内部容器损坏,控制器会按照Pod定义的容器重启策略,重建新容器补全Pod。
3. 控制器的工作原理:调谐(Reconciliation)机制
控制器的运行核心是调谐循环,流程如下:
- 先检测集群当前的真实运行状态;
- 将真实状态与用户定义的期望状态做对比;
- 若存在差异则调整资源部署:例如期望运行8个Pod,当前仅7个,则会在可用节点上新建Pod;若当前Pod数量超过期望(如9个),则按创建时间从新到旧删除多余Pod;
- 循环执行上述「检测-对比-调整」流程,不断让集群状态趋近期望状态。
需注意:期望状态不一定能最终达成,若集群资源不足以支撑期望的Pod数量,控制器也无法强行创建,最终状态会尽可能接近期望。
4. Kubernetes 原生自带的Pod控制器类型
Kubernetes 原生内置了多类Pod控制器,支持通过缩写简化书写,后续章节会逐一讲解每个控制器的功能与实验演示:
- ReplicationController(RC):最早的Pod副本控制器,现多被ReplicaSet替代
- ReplicaSet(RS):新一代Pod副本控制器,核心能力为保障Pod副本数量一致
- Deployment:基于RS实现,额外支持滚动更新、版本回滚等进阶能力
- DaemonSet:确保每个节点上运行指定类型的Pod,常用于日志、监控等组件部署
- Job:保障Pod执行完成即终止,适用于批量任务场景
- CronJob:支持定时触发Job执行,适用于定时任务场景
- HPA(Horizontal Pod Autoscaler):水平Pod自动扩缩容控制器,可根据集群负载自动调整Pod副本数量
除原生控制器外,Kubernetes 还支持通过CRD(自定义资源)实现自定义控制器、自定义调度器等扩展能力,满足个性化集群管理需求,后续也可了解非原生控制器的相关用法。
AI 总结
本节是Kubernetes Pod控制器章节的基础入门内容,首先明确了控制器的核心定位是通过调谐机制保障集群期望状态与当前状态一致,是Kubernetes实现自动化管理、Pod自愈、应用扩缩容的核心底层能力;其次通过ReplicaSet、Node控制器的典型场景,讲解了控制器的实际作用;最后列举了Kubernetes原生自带的7类Pod控制器,并说明后续会逐一展开功能讲解与实验验证,帮助学习者掌握各类控制器的适用场景。