溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何更新kubernetes過(guò)期證書(shū)

發(fā)布時(shí)間:2021-12-22 17:05:48 來(lái)源:億速云 閱讀:393 作者:小新 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)如何更新kubernetes過(guò)期證書(shū),小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

kubeadm 版本在kubernetes 1.15 版本 提供了強(qiáng)大的證書(shū)管理功能,本文章適用于kubernetes1.15以下版本(文章中kubernetes版本是1.13.2)。

1.15 版本的證書(shū)管理相關(guān)文檔:

  1. 官方文檔-使用 kubeadm 進(jìn)行證書(shū)管理

  2. [官方文檔-kubeadm alpha 使用說(shuō)明]9https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/)

查看證書(shū)有效期方法:

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '

?? kubeadm 默認(rèn)生成的ca證書(shū)有效期是10年,其他證書(shū)(如etcd證書(shū),apiserver證書(shū))有效期均為1年。

更新證書(shū)和配置

整體思路:

  1. 備份:在進(jìn)行證書(shū)更新前,建議備份/etc/kubernetes,防止操作失誤。

  2. 更新證書(shū):使用kubeadm alpha certs renew重新生成證書(shū)。僅更新***.key文件,需要原始的crt文件才能生成對(duì)應(yīng)的key文件。

  3. 更新配置:使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}或者kubeadm alpha kubeconfig user 命令。

?? 不同版本的kubeadm對(duì)于證書(shū)renew的命令有細(xì)微的差異,具體情況需要依據(jù)已經(jīng)安裝的kubeadm來(lái)判斷。通過(guò)命令行kubeadm alpha certs renew --help輸出類似如下信息: 如何更新kubernetes過(guò)期證書(shū)

證書(shū)更新策略:

  • 單主節(jié)點(diǎn):可以直接運(yùn)行kubeadm alpha certs renew all --config kubeadm.yaml完成證書(shū)更新。然后替換kubelet配置

  • 多主節(jié)點(diǎn):建議使用原ca證書(shū)(有效期10年),每個(gè)組件(etcd、apiserver 等)單獨(dú)更新。

多master節(jié)點(diǎn)證書(shū)更新

備份原始配置和證書(shū)

所有master節(jié)點(diǎn)運(yùn)行命令:cp -r /etc/kubernetes /home/heguangfu/kubernetes

更新證書(shū)

所有master節(jié)點(diǎn)依次完成如下命令:

  • etcd 心跳證書(shū):kubeadm alpha certs renew etcd-healthcheck-client --config kubeadm-config.ict15.yaml

  • etcd peer證書(shū):kubeadm alpha certs renew etcd-peer --config kubeadm-config.ict15.yaml

  • etcd server證書(shū):kubeadm alpha certs renew etcd-server --config kubeadm-config.ict15.yaml

  • front-proxy-client 證書(shū):kubeadm alpha certs renew front-proxy-client --config kubeadm-config.ict15.yaml

  • apiserver-etcd-client 證書(shū)kubeadm alpha certs renew apiserver-etcd-client --config kubeadm-config.ict15.yaml

  • apiserver-kubelet-client 證書(shū)kubeadm alpha certs renew apiserver-kubelet-client --config kubeadm-config.ict15.yaml

  • apiserver 證書(shū)kubeadm alpha certs renew apiserver --config kubeadm-config.ict15.yaml

?? 不同的master節(jié)點(diǎn)使用的kubeadm配置有細(xì)微的差異,執(zhí)行更新證書(shū)是,每個(gè)master在--config后面使用原來(lái)集群創(chuàng)建時(shí),當(dāng)前master對(duì)應(yīng)的kubeadm配置文件。

更新配置

所有master節(jié)點(diǎn),在更新完證書(shū)后,使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}更新kubernetes 配置

驗(yàn)證集群狀態(tài)

清理前次的kubectl權(quán)限信息:rm -rf $HOME/.kube。

重新配置kubectl權(quán)限信息:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  1. 驗(yàn)證etcd:查看etcd中某個(gè)節(jié)點(diǎn)的docker日志,日志中所有etcd peer均active且加入到同一個(gè)集群

  2. 驗(yàn)證kubernetes 集群:運(yùn)行kubectl cluster-infokubectl get nodes 符合預(yù)期。

  3. 確性kubernetes 系統(tǒng)相關(guān)的服務(wù)運(yùn)行正常(核心是kube-apiserver,kube-controller-manager,kube-proxy, kube-flannel):kubectl get pods -n kube-system

  4. 檢查pod的運(yùn)行狀態(tài):kubectl get pods --all-namespaces。

可能的問(wèn)題

  1. Part of the existing bootstrap client certificate is expired: 2020-01-19 15:10:17 +0000 UTC確認(rèn)全部證書(shū)更新,并且證書(shū)更新好后,更新了kubernetes配置

  2. 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]??赡茉蛴校鹤C書(shū)過(guò)期;證書(shū)部分更新;master上包含了代理配置,導(dǎo)致對(duì)apiserver的請(qǐng)求走了代理,證書(shū)認(rèn)證通不過(guò)(運(yùn)行unset http_proxy;unset ftp_proxy;unset socks_proxy;unset https_proxy,取消代理配置)。

關(guān)于“如何更新kubernetes過(guò)期證書(shū)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI