重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章將為大家詳細(xì)講解有關(guān)如何更新kubernetes過期證書,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)正寧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
kubeadm 版本在kubernetes 1.15 版本 提供了強(qiáng)大的證書管理功能,本文章適用于kubernetes1.15以下版本(文章中kubernetes版本是1.13.2)。
1.15 版本的證書管理相關(guān)文檔:
官方文檔-使用 kubeadm 進(jìn)行證書管理
[官方文檔-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 默認(rèn)生成的ca證書有效期是10年,其他證書(如etcd證書,apiserver證書)有效期均為1年。
整體思路:
備份:在進(jìn)行證書更新前,建議備份/etc/kubernetes
,防止操作失誤。
更新證書:使用kubeadm alpha certs renew
重新生成證書。僅更新***.key
文件,需要原始的crt文件才能生成對應(yīng)的key文件。
更新配置:使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}
或者kubeadm alpha kubeconfig user
命令。
?? 不同版本的kubeadm對于證書renew的命令有細(xì)微的差異,具體情況需要依據(jù)已經(jīng)安裝的kubeadm來判斷。通過命令行
kubeadm alpha certs renew --help
輸出類似如下信息:
證書更新策略:
單主節(jié)點(diǎn):可以直接運(yùn)行kubeadm alpha certs renew all --config kubeadm.yaml
完成證書更新。然后替換kubelet配置
多主節(jié)點(diǎn):建議使用原ca證書(有效期10年),每個組件(etcd、apiserver 等)單獨(dú)更新。
所有master節(jié)點(diǎn)運(yùn)行命令:cp -r /etc/kubernetes /home/heguangfu/kubernetes
所有master節(jié)點(diǎn)依次完成如下命令:
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節(jié)點(diǎn)使用的kubeadm配置有細(xì)微的差異,執(zhí)行更新證書是,每個master在
--config
后面使用原來集群創(chuàng)建時,當(dāng)前master對應(yīng)的kubeadm配置文件。
所有master節(jié)點(diǎn),在更新完證書后,使用kubeadm init phase kubeconfig all --config ${kubeadm.yaml配置文件}
更新kubernetes 配置
清理前次的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
驗(yàn)證etcd:查看etcd中某個節(jié)點(diǎn)的docker日志,日志中所有etcd peer均active且加入到同一個集群
驗(yàn)證kubernetes 集群:運(yùn)行kubectl cluster-info
和kubectl get nodes
符合預(yù)期。
確性kubernetes 系統(tǒng)相關(guān)的服務(wù)運(yùn)行正常(核心是kube-apiserver
,kube-controller-manager
,kube-proxy
, kube-flannel
):kubectl get pods -n kube-system
檢查pod的運(yùn)行狀態(tài):kubectl get pods --all-namespaces
。
Part of the existing bootstrap client certificate is expired: 2020-01-19 15:10:17 +0000 UTC
:確認(rèn)全部證書更新,并且證書更新好后,更新了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上包含了代理配置,導(dǎo)致對apiserver的請求走了代理,證書認(rèn)證通不過(運(yùn)行unset http_proxy;unset ftp_proxy;unset socks_proxy;unset https_proxy
,取消代理配置)。
關(guān)于“如何更新kubernetes過期證書”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。