kubernetes控制器概述

控制器是 Kubernetes 的核心,通过控制器管理器不断调谐(Reconcile),让集群实际状态向期望状态靠拢。用户在 yaml 写的是期望状态,控制器负责干活,持续对比 spec(期望)和 status(实际),不一致就执行操作修正。

工作模式:调谐循环 Reconcile Loop

  1. 读取资源期望状态
  2. 获取集群当前实际状态
  3. 对比两者差异
  4. 执行操作消除差异
  5. 循环监听

常用内置控制器

1. Deployment(最常用)

管理无状态应用,封装 ReplicaSet。

  • 能力:滚动更新、回滚、扩缩容、版本历史保存
  • 底层:Deployment → 创建 ReplicaSet → ReplicaSet 创建 Pod
  • 使用场景:Web 服务、微服务,无本地数据存储

2. ReplicaSet

维护指定数量 Pod 副本,保证一定数量 Pod 正常运行。

  • 几乎不直接使用,由 Deployment 自动创建
  • 核心:selector标签选择器匹配 Pod
  • 如果直接删 ReplicaSet,它会把关联 Pod 全部删掉

3.DaemonSet

在全部 / 指定节点上运行一个 Pod 副本

  • 新节点加入集群自动部署 Pod;节点删除自动清理 Pod
  • 场景:日志采集(filebeat)、监控 agent、网络插件 calico/flannel

4.Job

执行一次性任务,保证任务 Pod 成功完成。

  • 任务成功结束 Pod 不会删除;失败会重启重建 Pod 直到成功
  • 参数:completions完成数,parallelism并发数
  • 场景:数据备份、批量计算

5.CronJob

定时 Job,类似 Linux crontab 定时任务

  • cron 表达式调度,周期性创建 Job
  • 配置历史保留成功 / 失败 Job 数量

注意:集群时间要同步,避免定时不准

一、Replicaset控制器

1.建立控制器

拉伸

2.测试功能

二、deployment

1.监控

2.建立deployment控制器

发布服务

3.升级与回滚

三、版本更新管理及优化

把pod数量设定为6方便观察

1.查看更新策略信息

2.设定更新测略

3.版本更新测试

监控显示更新策略表现

四、DaemonSet

另外开启一个主机node3,并设定在初始化集群时的所有设定确保所有服务的开启
在master中重新生成集群主机注册时需要的token

当node3加入集群后会在node3中立即执行指定的pod,其原因是因为运行了daemonset

五、job控制器

六、cronjob控制器

更多推荐