- 同样在部署主机上创建证书请求文件(为之后的证书生成做准备)
- 根据上面的证书文件创建证书(结果会在当前目录下产生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