k8s證書更新
1. 查看證書過期時(shí)間
#通過文件查看證書過期時(shí)間
for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===============;done
#通過命令查看證書過期時(shí)間
kubeadm certs check-expiration
k8s安裝一年后證書顯示過期。證書未自動續(xù)期。
以下操作需到所有master節(jié)點(diǎn)操作
一般情況下,k8s創(chuàng)建的集群節(jié)點(diǎn)上的/usr/bin/文件夾下會存在kubeadm二進(jìn)制文件,如果發(fā)現(xiàn)master節(jié)點(diǎn)上沒有kubeadm,可以從官方下載對應(yīng)的版本并且安裝。文章來源地址http://www.zghlxwxcb.cn/news/detail-619786.html
2. 備份文件
## 將k8s和tecd相關(guān)文件做備份
cp -r /etc/kubernetes /etc/kubernetes.bak
cp -r /var/lib/etcd /var/lib/etcd.bak
3. 證書更新
kubeadm certs renew all #新版本更新證書
kubeadm alpha certs renew all #老版本更新證書
4. 更新kubeconfig
mv /etc/kubernetes/admin.conf /root/
cp -r /root/.kube /root/.kube.bak
cp -f /etc/kubernetes/admin.conf /root/.kube/config
kubeadm init phase kubeconfig all #更新kubeconfig
5. 驗(yàn)證
# 驗(yàn)證與組件重啟,執(zhí)行完上述更新證書操作后可以通過
echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
#驗(yàn)證apiserver證書有效期是否更新,會發(fā)現(xiàn)證書有效期沒有更新。此原因是k8s組件如果沒有重啟就不會使用新證書導(dǎo)致的,執(zhí)行如下命令
docker rm -f $(docker ps -q -f label=io.kubernetes.container.name=kube-apiserver)
docker rm -f $(docker ps -q -f label=io.kubernetes.container.name=kube-controller-manager)
docker rm -f $(docker ps -q -f label=io.kubernetes.container.name=kube-scheduler)
docker rm -f $(docker ps -q -f label=io.kubernetes.container.name=etcd)
#以重啟k8s及etcd相關(guān)組件后,再次執(zhí)行可以觀察到證書有效期已經(jīng)發(fā)生變化
echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
# 注意:必須重啟一下kubelet docker
systemctl restart kubelet docker
#docker重啟后容器都是未運(yùn)行中,請通過此命令運(yùn)行所有的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
#根據(jù)容器的狀態(tài),刪除Exited狀態(tài)的所有容器,不然K8S的組件(etcd,kube-apiserver,kube-controller-manager,kube-scheduler)重名運(yùn)行不起來
docker rm $(sudo docker ps -qf status=exited)
#此時(shí),還是無法使用kubectl get nodes,一定要重啟機(jī)器
reboot
次博客是本人測試過v1.23.8版本后,沒有問題后撰寫的,請大家放心操作!
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 54d v1.23.8
k8s-node1 Ready <none> 54d v1.23.8
k8s-node2 Ready <none> 54d v1.23.8
[root@k8s-master ~]#
文章來源:http://www.zghlxwxcb.cn/news/detail-619786.html
到了這里,關(guān)于k8s證書更新,kubeadm安裝的K8S證書過期后無法使用后證書更新方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!