Kubernetes集羣的證書有效期是1年,若是超過有效期,kublet服務會無效,此時繼續使用kubelet命令,將會獲得相似這樣的提示「Unable to connect to the server: x509: certificate has expired or is not yet valid.」所以,咱們須要對其進行維護。node
kubeadm alpha certs check-expiration
mkdir -p $HOME/k8s-old-certs/pki cp -p /etc/kubernetes/pki/*.* $HOME/k8s-old-certs/pki ls -l $HOME/k8s-old-certs/pki/
結果:api
total 56 -rw-r--r-- 1 root root 1261 Sep 4 2019 apiserver.crt -rw-r--r-- 1 root root 1090 Sep 4 2019 apiserver-etcd-client.crt -rw------- 1 root root 1679 Sep 4 2019 apiserver-etcd-client.key -rw------- 1 root root 1679 Sep 4 2019 apiserver.key -rw-r--r-- 1 root root 1099 Sep 4 2019 apiserver-kubelet-client.crt -rw------- 1 root root 1679 Sep 4 2019 apiserver-kubelet-client.key -rw-r--r-- 1 root root 1025 Sep 4 2019 ca.crt -rw------- 1 root root 1675 Sep 4 2019 ca.key -rw-r--r-- 1 root root 1038 Sep 4 2019 front-proxy-ca.crt -rw------- 1 root root 1675 Sep 4 2019 front-proxy-ca.key -rw-r--r-- 1 root root 1058 Sep 4 2019 front-proxy-client.crt -rw------- 1 root root 1679 Sep 4 2019 front-proxy-client.key -rw------- 1 root root 1675 Sep 4 2019 sa.key -rw------- 1 root root 451 Sep 4 2019 sa.pub
cp -p /etc/kubernetes/*.conf $HOME/k8s-old-certs ls -ltr $HOME/k8s-old-certs
結果:服務器
total 36 -rw------- 1 root root 5451 Sep 4 2019 admin.conf -rw------- 1 root root 5595 Sep 4 2019 kubelet.conf -rw------- 1 root root 5483 Sep 4 2019 controller-manager.conf -rw------- 1 root root 5435 Sep 4 2019 scheduler.conf drwxr-xr-x 2 root root 4096 Dec 19 21:21 pki
mkdir -p $HOME/k8s-old-certs/.kube cp -p ~/.kube/config $HOME/k8s-old-certs/.kube/. ls -l $HOME/k8s-old-certs/.kube/.
結果:ide
-rw------- 1 root root 5451 Sep 4 2019 config
kubeadm alpha certs renew all
結果rest
certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed certificate for serving the Kubernetes API renewed certificate the apiserver uses to access etcd renewed certificate for the API server to connect to kubelet renewed certificate embedded in the kubeconfig file for the controller manager to use renewed certificate for liveness probes to healtcheck etcd renewed certificate for etcd nodes to communicate with each other renewed certificate for serving etcd renewed certificate for the front proxy client renewed certificate embedded in the kubeconfig file for the scheduler manager to use renewed
kubeadm alpha certs check-expiration
kubectl get nodes
若是輸出如下信息code
The connection to the server 9.37.21.119:6443 was refused - did you specify the right host or port?
則須要執行下面步驟繼續進行修復server
diff $HOME/k8s-old-certs/kubelet.conf /etc/kubernetes/kubelet.conf
若是沒有任何輸出,則更新證書操做沒有影響此文件,繼續下面的步驟手動修復。ci
cd /etc/kubernetes sudo kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > kubelet.conf diff $HOME/k8s-old-certs/kubelet.conf /etc/kubernetes/kubelet.conf
更新後能夠查看與備份文件的區別.get
diff ~/.kube/config $HOME/fcik8s-old-certs/.kube/config
若是沒有任何輸出,則該文件包含過時的key和證書,繼續下面的步驟手動修復。kubernetes
systemctl daemon-reload&&systemctl restart kubelet
kubectl get nodes ... kubectl get pods
參考資料:https://www.ibm.com/docs/en/fci/1.1.0?topic=kubernetes-renewing-cluster-certificates