type
status
date
slug
summary
category
tags
create_time
Aug 14, 2025 09:27 PM
icon
password
my_create_time

📝 前言

在 Kubernetes 控制平面组件中,kube-controller-manager 是负责维持集群状态的“大总管”。
如果说 kube-apiserver 是大脑、etcd 是记忆、kube-scheduler 是调度员,那么kube-controller-manager就是执行各种集群自动化控制逻辑的执行者,确保集群的实际状态与期望状态一致。
本文是《云原生之旅》系列第三部分的第五篇,将详细介绍 kube-controller-manager 的作用、工作原理、工作流程以及常用参数,帮助你更好地理解和优化它在生产环境的表现。
PS:这也是控制平面组件介绍的最后一篇了,下一篇将进入节点组件介绍部分。

🧠 本章知识卡片

notion image

🚀 本章小节

1️⃣ 什么是 kube-controller-manager?

kube-controller-manager 是 Kubernetes 控制平面的核心组件之一,它运行一组控制器(Controller),这些控制器通过 kube-apiserver 监听资源对象的变化,并执行相应的调节操作。

2️⃣ 工作职责

它主要负责:
  • 副本控制(Replication):确保 Pod 副本数与期望值一致(Deployment、ReplicaSet、StatefulSet)。
  • 节点管理(Node Controller):监控节点健康状态,自动隔离或清理失效节点。
  • 服务账户与 Token 控制器:自动为新创建的命名空间分配服务账户和 API 访问凭证。
  • 端点控制(Endpoints Controller):维护 Service 与 Pod 的映射关系。
  • Job 与 CronJob 控制:管理一次性任务与定时任务的执行。
  • 卷控制(Volume Controller):负责动态存储卷的创建与绑定。
  • 证书与 CSR(CertificateSigningRequest)控制:自动化签发和更新证书。

3️⃣ 工作原理

大致原理如下:
  • 监听集群状态
    • 所有控制器通过 kube-apiserver 监听集群对象的变更(例如 Pod、Node、Service 等)。
  • 比较期望状态与实际状态
    • 控制器会从 API Server 获取对象的期望状态(Spec)和实际状态(Status)。
  • 执行调整操作
    • 如果发现差异,则执行补偿动作(例如创建新 Pod、删除异常 Node、更新 Service Endpoints)。
  • 持续循环
    • 控制器是一个不断运行的循环过程,确保状态持续收敛到期望状态。
大致工作流程图如下:
notion image

4️⃣ 常见启动参数

kubeadm 安装的集群中,kube-controller-manager 的静态 Pod 配置文件通常位于:
该文件中可以直接修改启动参数,修改后 kubelet 会自动重启该组件。
常见的启动参数如下:
参数
说明
--controllers
指定运行的控制器,支持 * 表示全部运行
--cluster-cidr
指定集群 Pod IP 段,用于管理 Node 上的 Pod CIDR 分配
--node-monitor-period
Node 健康检查周期
--node-monitor-grace-period
Node 未响应的宽限期,超过后认为不可用
--node-startup-grace-period
新 Node 加入时的宽限期
--service-cluster-ip-range
Service 集群 IP 段
--allocate-node-cidrs
是否自动为 Node 分配 CIDR
--leader-elect
是否启用领导者选举
--feature-gates
启用/禁用实验特性,如 RotateKubeletServerCertificate=true
--kubeconfig
访问 API Server 的配置文件路径
--bind-address
监听地址
--secure-port
HTTPS 服务端口

✅ 总结

kube-controller-manager 是 Kubernetes 控制平面中不可或缺的“自动化执行者”,通过运行多种控制器确保集群状态与期望状态一致。
在生产环境中,合理调整 --node-monitor-period--node-monitor-grace-period 等参数,可以显著提升故障响应速度和资源利用效率。 同时,精简不必要的控制器、开启证书自动轮换、配合多副本部署和 Leader 选举,能进一步提高集群的安全性与稳定性。 掌握它的原理与优化方法,是构建高可用 Kubernetes 集群的重要一步。
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
Nginx+ACME服务器搭建
下一篇
第三部分:控制平面组件:kube-scheduler 介绍

评论
Loading...