kubeadm證書過期問題解決


kubeadm證書過期問題解決

  有用過kubeadm搭建過k8s集群的,應該都知道默認證書為一年,一年過期后,會導致kubelet服務啟動不了。

  我公司的kubeadm版本是:v1.10.1,據說是2018年運維搭的:單節點master,兩個工作節點,共3台機器。

  查看主節點master日志如下:

 

1、查看kubeadm的過期時間
1)cd /etc/kubernetes/pki
(2for i in $(ls *.crt); do echo "===== $i ====="; openssl x509 -in $i -text -noout | grep -A 3 'Validity' ; done

 

2、證書過期解決方法:
  查了好久,這個版本又太舊,而且我又不敢隨意升級版本,因為jenkins,harbor,都在上面,怕升了丟了數據。
  終於找到解決方法, 參考: https://github.com/yuyicai/update-kube-cert
1  git clone https://github.com/yuyicai/update-kube-cert.git
2  cd update-kubeadm-cert
3  chmod 755 update-kubeadm-cert.sh
[root@master1 update-kube-cert]# ./update-kubeadm-cert.sh all

 啟動kubelet終於可以了。

 

3、重新查看證書過期時間:2029年才過期

 

4、檢查相關證書文件是否已更新

(主要是apiserver,ca,front-proxy,和etcd的crt文件更新了)

ll /etc/kubernetes/pki

 

ll /etc/kubernetes/pki/etcd

 

 5、其他檢查工作

重新查看日志沒問題:/var/log/messages(竟然把所有日志寫到這里,服了服了。。。。)

(1)主節點的apiserver能啟動成功

(2)工作節點重啟docker和kubelet,也沒有報錯了

 

 

一些坑(大家可以忽略,在沒查到github正確解決方法的時候踩的,記錄下)

####################### 坑 

1、重新初始化會出事的

kubeadm init --kubernetes-version=v1.10.1 --pod-network-cidr=10.244.0.0/16
運行上面命令初始化之前,要保證這些目錄是空的:
/etc/kubernetes/pki/
/etc/kubernetes/pki/etcd
/var/lib/etcd
/etc/kubernetes 下的conf文件不能有

然后不知道為什么會報錯說角色權限不夠:
k8s.io/kubernetes/pkg/kubelet/kubelet.go:460: Failed to list *v1.Node: Unauthorized
kubectl get pod什么的都沒有

 

2、虛擬機恢復之前的快照是可以運行整個集群服務的! ——》臨時拖延解決方法

  我們之前做了一個先於12月10前的快照,可以把kubeadm相關組件服務都啟動起來,只要你不要同步網絡時間,它還是以打快照時間為服務器時間,且是參照2020年12月10日作為過期時間的。當時以為找不到解決方法,只能這樣先湊合用着先。(這版本太舊也是麻煩 = =)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM