Bootstrap

9. k8s二进制集群之kube-controller-manager部署

继续上一篇文章《k8s二进制集群之Kubectl部署》下面介绍一下k8s中的kube控制器管理工具kube-controller-manager。
kube-controller-manager 是集群控制平面的核心组件之一,负责运行各种控制器(Controller),确保系统的实际状态与用户声明的期望状态一致。作为自动化引擎,持续监控并修复集群中的资源状态,是 Kubernetes 实现声明式 API 和自愈能力的关键。
kube-controller-manager 集成了多个内置控制器,每个控制器独立管理特定资源。主要控制器包括:

  • Node Controller:监控节点状态(通过心跳机制),处理节点不可用情况(如标记 NotReady、驱逐 Pod)。
  • Deployment Controller:管理 Deployment 的滚动更新、回滚,驱动 ReplicaSet 调整 Pod 副本数。
  • ReplicaSet Controller:确保 Pod 副本数与期望值一致(扩缩容、替换故障 Pod)。
  • Endpoint Controller:维护 Service 与 Pod 的映射关系(更新 Endpoints 对象)。
  • Namespace Controller:管理命名空间的生命周期(如删除命名空间时清理资源)。
  • ServiceAccount Controller:为命名空间创建默认 ServiceAccount 及访问令牌。
  • CronJob Controller:触发 CronJob 按计划创建 Job。

下面来介绍一下在k8s二进制搭建当中怎么去部署kube-controller-manager;

同样在部署主机上创建证书请求文件(为之后的证书生成做准备)

cat > kube-controller-manager-csr.json <<"EOF"
{
 "CN": "system:kube-controller-manager",
 "key": {
  "algo": "rsa",
  "size": 2048
 },
 "hosts": [
  "127.0.0.1",
  "192.168.3.41",
  "192.168.3.42",
  "192.168.3.43"
 ],
 "names": [{
  "C":"CN",
  "ST":"zhejiang",
  "L":"hangzhou",
  "O":"system:kube-controller-manager",
  "OU":"system"
 }]
}
EOF

根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json 
;