云原生:控制器

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控制器

相关推荐
panxianren35 分钟前
Bun 1.4 的 bun test --parallel 将 4 秒的测试套件缩短到约 1 秒
java·javascript
“AI国潮设计-小江”2 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
程序喵大人2 小时前
【C++入门】编译链接模型 - 01 一个 C++ 程序是怎样变成可执行文件的
开发语言·c++·编译链接模型
sunshine22 girl2 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
省钱兄--zs3 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang3 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
sunshine22 girl4 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat4 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
菜鸟~noob2334 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
惊讶的猫5 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python