做甜點(diǎn)的網(wǎng)站百度競(jìng)價(jià)價(jià)格查詢
問(wèn)題描述
本地有一個(gè)1master2worker的k8s集群,今天啟動(dòng)VMware虛擬機(jī)之后發(fā)現(xiàn)api-server沒(méi)有起來(lái),docker一直退出,這個(gè)集群是使用kubeadm安裝的。
于是kubectl logs查看了日志,發(fā)現(xiàn)證書過(guò)期了
解決方案:
查看證書
# kubeadmcerts check-expiration
重新生成證書
這步會(huì)覆蓋/etc/kubernetes/pki下面的證書文件
# kubeadm certs renew all
根據(jù)提示,重啟docker【kube-apiserver, kube-controller-manager, kube-scheduler and etcd】
# docker stop docker.service
# docker stop docker.socket
更新kubelet證書
同樣,證書已過(guò)期
這里可以直接刪除/etc/kubernetes的conf文件,因?yàn)閏onf文件都是用的舊的證書生成的配置,我們用新生成的證書重新生成配置
# kubeadm init --kubernetes-version=v1.22.2 phase kubeconfig all
kubelet也生成了新的證書和conf文件,過(guò)期時(shí)間也更新了
拷貝admin.config到~/.kube/config,此時(shí)集群可以訪問(wèn)了
# cp /etc/kubernetes/admin.conf ~/.kube/config
將kubelet.conf文件拷貝到各個(gè)node節(jié)點(diǎn)上,node節(jié)點(diǎn)重啟kubelet