当前位置: 首页 > news >正文

如何理解k8s中的controller

一、基本概念

        在k8s中,Controller(控制器)是核心组件之一,其负责维护集群状态并确保集群内的实际状态期望状态一致的一类组件。控制器通过观察集群的当前状态并将其与用户定义的期望状态进行对比,做出相应的调整来实现状态的一致性

控制器:负责管理工作负载资源(如 Pod、Deployment、StatefulSet 等),确保集群状态符合用户期望。

 二、Controller的核心作用

  • 调和(Reconciliation)‌:Controller不断比较资源的实际状态(如当前运行的Pod数量)与用户定义的期望状态(如Deployment中指定的副本数),并通过API Server调整资源,直到两者一致。
  • 自动化管理‌:处理Pod的创建、更新、扩缩容、故障恢复等任务,减少人工干预。

三、Controller 的工作原理

  1. Watch 机制:Controller 通过 API 服务器的 Watch 接口监听资源变化事件(如 Pod 创建、删除等)。
  2. 工作队列:接收到事件后,Controller 将相关对象放入工作队列(Work Queue)。
  3. 处理逻辑:Controller 从队列中取出对象,根据业务逻辑(如扩容、修复故障)执行操作,使集群状态趋近期望状态。
  4. 循环执行:持续重复上述过程,确保集群状态始终与期望状态一致。

四、常见的内置 Controller

K8s 中有多种内置 Controller,负责不同类型的资源管理:

1、Deployment Controller

        管理 Deployment 资源,确保 Pod 副本数与期望一致,支持滚动更新和回滚。

2、ReplicaSet Controller

        维护 Pod 的副本数量,确保指定数量的 Pod 始终运行。

3、StatefulSet Controller

        管理有状态应用,确保 Pod 的顺序性、稳定性和持久化存储。

4、DaemonSet Controller

        确保每个 Node 上运行一个特定的 Pod 副本(如监控代理、日志收集器)。

5、Job Controller

        管理一次性任务(Job),确保任务成功完成后终止。

6、CronJob Controller

        基于时间调度周期性任务(CronJob)。

7、Horizontal Pod Autoscaler(HPA)

        据CPU利用率或自定义指标自动调整Pod的数量。

五. 自定义Controller与Operator

  • CRD(Custom Resource Definition)‌:允许用户定义自定义资源(如RedisCluster)。
  • 自定义Controller‌:用于监听CRD对象的变更,实现业务逻辑(如自动备份、故障恢复、自动化部署第三方服务、集成外部系统等)。
  • Operator模式‌:Operator是一种特殊的自定义 Controller,其结合CRD和自定义Controller,封装领域知识,实现复杂应用全生命周期的自动化管理(如MySQL Operator)。

相关文章:

  • 技术视界 | 青龙机器人训练地形详解(一):如何创建一个地形
  • 探索 C++ 语言标准演进:从 C++23 到 C++26 的飞跃
  • 【FreeRTOS-消息队列】
  • 阿里云服务器-centos部署定时同步数据库数据-dbswitch
  • Microsoft Azure 在印度尼西亚区域正式上线
  • 三菱 FX 系列 PLC 转网口模块SG-FX-210
  • 英伟达开源Llama-Nemotron系列模型:14万H100小时训练细节全解析
  • centos8.5.2111安装python3.11.12
  • 华为昇腾在智慧矿山机器人的应用及其技术解决方案
  • Milvus(16):索引解释
  • ROS-仿真实验平台
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.1 基础图表绘制(折线图/柱状图/散点图)
  • 手动写一个vuex的可持续化插件
  • html css js网页制作成品——HTML+CSS珠海网页设计网页设计(4页)附源码
  • 基于RT-Thread的STM32G4开发第二讲第二篇——ADC
  • MCU怎么运行深度学习模型
  • TB6600HG是一款PWM(脉宽调制)斩波型单芯片双极性正弦波微步进电机驱动集成电路。
  • 如何让大脑 保持长时间清醒状态
  • 阿维塔汽车CAN总线数据适配技术解析与免破线数据采集实践
  • 创建需求跟踪矩阵5大常见步骤(附注意事项)
  • 毕赣新作《狂野时代》入围戛纳主竞赛单元,易烊千玺舒淇主演
  • 陕西永寿4岁女童被蜜蜂蜇伤致死,当地镇政府介入处理
  • 警惕“全网最低价”等宣传,市监总局和中消协发布直播消费提示
  • 中国中古史集刊高质量发展论坛暨《唐史论丛》创刊四十周年纪念会召开
  • 暴雨及强对流天气黄色预警已发布!南方进入本轮降雨最强时段
  • AI智能体,是不是可以慢一点? | ToB产业观察