云原生:控制器

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

相关推荐
2501_944521594 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
行思理4 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
知已难寻5 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
wangchunyu1146 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
paopaokaka_luck6 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir6 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人7 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_944521597 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
meiying88388 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
@大迁世界9 小时前
告别 Go,拥抱 Rust
开发语言·golang·rust