云原生:控制器

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

相关推荐
UseLessQQ1 小时前
云原生 kubenetes 控制器管理
云原生·kubernetes
咖啡八杯1 小时前
统一返回对象设计:AjaxResult 与 R 的取舍
java·spring boot·框架·若依·返回值
whcyhhh1 小时前
头歌实践教学平台:数据科学与大数据技术导论(十)
大数据·开发语言·python
小手cool2 小时前
JSON.parseObject 返回 List 时不能强制转换的解决方案
java·json·list
凯酱3 小时前
MyBatis 中 OGNL 的使用:从入门到实战
java·tomcat·mybatis
Data_Journal9 小时前
用于网页抓取的 Node-unblocker
大数据·开发语言·数据库·python·scrapy
吴声子夜歌9 小时前
Java面试——算法
java·算法·面试
evans在进步9 小时前
LeetCode 64:最小路径和——Java 原地动态规划详解
java·leetcode·动态规划
豆角焖肉9 小时前
SSM 聚合项目搭建:多 Maven 模块项目
开发语言·python·pycharm