云原生:控制器

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

相关推荐
重生之小比特27 分钟前
【Java SE】字符串 - String类
java·开发语言·intellij-idea
mldong6 小时前
给若依加审批流,不用 Flowable
java·spring boot·架构
Wang's Blog8 小时前
Java框架快速入门: Spring Security+OAuth2之数据库和实体类的RBAC改造
java·数据库·spring
讳疾忌医丶8 小时前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
lsswear8 小时前
Python 并发 线程
开发语言·python
郑州光合科技余经理8 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
毅炼8 小时前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
软件课代表CiCi9 小时前
运行库是什么?电脑缺运行库怎么办?c++运行库缺失修复全攻略
开发语言·c++·windows·电脑·dll修复·dll丢失·运行库
梦想平凡9 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
Ivanqhz9 小时前
MLIR OpBuilder
开发语言·python·mlir