Kubernetes kubeadm 部署集群证书手动续期 重启control plane组件

635 阅读1分钟

kubeadm搭建的集群证书默认过期时间为1年,root证书过期时间为10年,kubernetes升级会自动续期证书。kubeadm也提供了手动续期证书,但提示需要重启control plane组件,也就apiserver,controller-manager和scheduler,etcd(>=3.2.0)无需重启 (etcd.io/docs/v3.4/o…).

kubernetes.io/docs/tasks/…

分享一下我在部署和运维Kubernetes集群中,如何重启control plane组件。

1 是否需要重启

目前来看apiserver,controller-manager和scheduler是必须的github.com/kubernetes/…

具体细节: 测试1.16,必须重启。之后版本,亲测apiserver会自动重载,其它不清楚。kubeadm开发team确认所有证书自动重载是work in progress,但无法跟踪进度,可能是不同的人负责不同的组件。无法确定之前,kubeadm只能提示重启control plane组件。

2 如何重启

2.1 重启Docker daemon

直接重启docker daemon,但不适用于生产环境,因为不希望所有container重启。并且如果docker设置 live-restore,重启daemon根本不起作用。 docs.docker.com/config/cont…

~$ sudo systemctl restart docker

2.2 重启kubernetes pod

kubectl删除apiserver pod也不起作用。因为control plane是静态pod,无法通过api管理这些pod。

~$ kubectl delete pod -n kube-system kube-apiserver-xxx-1 

2.3 重启docker container

ssh到每个master节点,重启container

~$ docker ps -f "name=k8s_kube-apiserver" -q | xargs docker restart
~$ docker ps -f "name=k8s_kube-controller" -q | xargs docker restart
~$ docker ps -f "name=k8s_kube-scheduler" -q | xargs docker restart