Kubernetes v1.21集群续证后,如何正确重启控制面组件?
Kubernetes v1.21证书续期后控制平面组件重启方案
你的情况是因为kubeadm部署的kube-apiserver、kube-controller-manager、kube-scheduler、etcd都是静态Pod,由kubelet直接管理,并非systemd服务,也不会以普通Pod的形式展示(需通过特定方式查看),所以用systemctl命令找不到对应服务。
正确重启步骤:
确认静态Pod配置文件位置
控制平面节点上,所有控制平面组件的静态Pod配置文件都存放在/etc/kubernetes/manifests/目录下,可通过以下命令查看:ls /etc/kubernetes/manifests/输出应包含
kube-apiserver.yaml、kube-controller-manager.yaml、kube-scheduler.yaml、etcd.yaml这几个文件。触发组件重启
kubelet会实时监控/etc/kubernetes/manifests/目录下的文件变更,只要修改文件的时间戳,就能触发kubelet重启对应组件。执行以下命令:# 重启kube-apiserver touch /etc/kubernetes/manifests/kube-apiserver.yaml # 重启kube-controller-manager touch /etc/kubernetes/manifests/kube-controller-manager.yaml # 重启kube-scheduler touch /etc/kubernetes/manifests/kube-scheduler.yaml # 重启etcd touch /etc/kubernetes/manifests/etcd.yaml验证重启结果
- 查看组件状态:静态Pod会在
kube-system命名空间下展示,名称带有节点名后缀,执行以下命令过滤查看:
确认所有组件的状态变为kubectl get pods -n kube-system | grep -E 'kube-apiserver|kube-controller-manager|kube-scheduler|etcd'Running,且重启时间更新。 - 检查证书有效性:再次执行续期验证命令,确认证书已更新:
kubeadm certs check-expiration - 查看组件日志:通过kubelet的系统日志查看组件运行状态:
journalctl -u kubelet -f | grep apiserver
- 查看组件状态:静态Pod会在
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

