9. k8s二进制集群之kube-controller-manager部署
- 同样在部署主机上创建证书请求文件(为之后的证书生成做准备)
- 根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)
- 创建kube-controller-manager服务配置文件
- 创建kube-controller-manager服务启动文件
- 同步kube-controller-manager证书到对应master节点
- 查看一下证书验证是否安装完成
- 最后来启动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