您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何更新kubernetes過期證書,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
kubeadm 版本在kubernetes 1.15 版本 提供了強大的證書管理功能,本文章適用于kubernetes1.15以下版本(文章中kubernetes版本是1.13.2)。
1.15 版本的證書管理相關文檔:
官方文檔-使用 kubeadm 進行證書管理
[官方文檔-kubeadm alpha 使用說明]9https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/)
查看證書有效期方法:
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '
?? kubeadm 默認生成的ca證書有效期是10年,其他證書(如etcd證書,apiserver證書)有效期均為1年。
整體思路:
備份:在進行證書更新前,建議備份/etc/kubernetes
,防止操作失誤。
更新證書:使用kubeadm alpha certs renew
重新生成證書。僅更新***.key
文件,需要原始的crt文件才能生成對應的key文件。
更新配置:使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}
或者kubeadm alpha kubeconfig user
命令。
?? 不同版本的kubeadm對于證書renew的命令有細微的差異,具體情況需要依據已經安裝的kubeadm來判斷。通過命令行
kubeadm alpha certs renew --help
輸出類似如下信息:
證書更新策略:
單主節點:可以直接運行kubeadm alpha certs renew all --config kubeadm.yaml
完成證書更新。然后替換kubelet配置
多主節點:建議使用原ca證書(有效期10年),每個組件(etcd、apiserver 等)單獨更新。
所有master節點運行命令:cp -r /etc/kubernetes /home/heguangfu/kubernetes
所有master節點依次完成如下命令:
etcd 心跳證書:kubeadm alpha certs renew etcd-healthcheck-client --config kubeadm-config.ict15.yaml
etcd peer證書:kubeadm alpha certs renew etcd-peer --config kubeadm-config.ict15.yaml
etcd server證書:kubeadm alpha certs renew etcd-server --config kubeadm-config.ict15.yaml
front-proxy-client 證書:kubeadm alpha certs renew front-proxy-client --config kubeadm-config.ict15.yaml
apiserver-etcd-client 證書kubeadm alpha certs renew apiserver-etcd-client --config kubeadm-config.ict15.yaml
apiserver-kubelet-client 證書kubeadm alpha certs renew apiserver-kubelet-client --config kubeadm-config.ict15.yaml
apiserver 證書kubeadm alpha certs renew apiserver --config kubeadm-config.ict15.yaml
?? 不同的master節點使用的kubeadm配置有細微的差異,執行更新證書是,每個master在
--config
后面使用原來集群創建時,當前master對應的kubeadm配置文件。
所有master節點,在更新完證書后,使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}
更新kubernetes 配置
清理前次的kubectl權限信息:rm -rf $HOME/.kube
。
重新配置kubectl權限信息:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
驗證etcd:查看etcd中某個節點的docker日志,日志中所有etcd peer均active且加入到同一個集群
驗證kubernetes 集群:運行kubectl cluster-info
和kubectl get nodes
符合預期。
確性kubernetes 系統相關的服務運行正常(核心是kube-apiserver
,kube-controller-manager
,kube-proxy
, kube-flannel
):kubectl get pods -n kube-system
檢查pod的運行狀態:kubectl get pods --all-namespaces
。
Part of the existing bootstrap client certificate is expired: 2020-01-19 15:10:17 +0000 UTC
:確認全部證書更新,并且證書更新好后,更新了kubernetes配置
api server日志:Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]
。可能原因有:證書過期;證書部分更新;master上包含了代理配置,導致對apiserver的請求走了代理,證書認證通不過(運行unset http_proxy;unset ftp_proxy;unset socks_proxy;unset https_proxy
,取消代理配置)。
關于“如何更新kubernetes過期證書”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。