k8s證書有效期時間修改的方法詳解

修改後的集群時間,10年的時間,夠集群平穩運行一段時間瞭。

剛部署好k8s的master集群時,查看證書有效期,時間是1年。一年,說長不長,說短不短。查看目前在運行的應用,都已經運行2年多,這樣,1年的有效期就會有問題。

前提

確保資源池的監控信息都正常,如果有應用正在運行,確保應用能正常被訪問到,監控信息也能正常被監控到。

更改有效期

大致分兩步。

1、  可以先把所有的kubelet的service文件都替換瞭,然後挨個重啟kubelet

2、  controller-manager 一定要先重啟備節點,再重啟主節點

kubelet證書更新具體步驟(需要root權限)

集群中沒有應用運行的情況

a.添加參數

調用下面的命令行修改 kube- controller-manager 組件配置  【所有kube master節點都要修改】

都隻是修改完配置文件,systemctl daemon-reload,暫時不重啟。

# sed -i '/v=2/i\  --experimental-cluster-signing-duration=87600h0m0s \\' /usr/lib/systemd/system/kube-controller-manager.service
 
# sed -i '/v=2/i\  --feature-gates=RotateKubeletServerCertificate=true \\' /usr/lib/systemd/system/kube-controller-manager.service
 
# systemctl daemon-reload

查看修改後的 kube-controller-manager.service文件

 2.修改 kubelet 組件配置 【所有kube-master 和 kube-node節點都要修改】

# sed -i '/v=2/i\  --feature-gates=RotateKubeletServerCertificate=true \\' /usr/lib/systemd/system/kubelet.service
 
# sed -i '/v=2/i\  --feature-gates=RotateKubeletClientCertificate=true \\' /usr/lib/systemd/system/kubelet.service
 
# sed -i '/v=2/i\  --rotate-certificates \\' /usr/lib/systemd/system/kubelet.service
 
# systemctl daemon-reload

查看kubelet.service內容

集群中有應用運行的情況

先重啟備kube-controller-manager節點,最後重啟主kube-controller-manager節點服務。

# systemctl restart kube-controller-manager

查看當前主kube-controller-manager,

# kubectl get endpoints kube-controller-manager --namespace=kube-system  -o yaml

 備份刪除kubelet證書,重啟kubelet服務

# cd /etc/kubernetes/ssl/
# mkdir /home/k8app/ssl.bak
# mv kubelet* /home/k8app/ssl.bak
# systemctl restart kubelet
# systemctl status kubelet.service

確認kubelet啟動成功,在master主機k8app用戶下

$ kubectl get csr

Approve 狀態為pending的csr

# kubectl get csr | grep -i pending | awk '{print $1}' | grep -vi name | xargs kubectl certificate approve
 
#執行完後,再檢查下
# kubectl get csr

確認csr為Approved,Issued狀態

檢查證書有效期

 便都是10年有效期瞭

總結 

到此這篇關於k8s證書有效期時間修改的文章就介紹到這瞭,更多相關k8s證書有效期時間內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: