更新證書需要重啟服務(wù)才能生效(證書已經(jīng)過期和還未過期都要重啟才能生效),重啟會(huì)對(duì)業(yè)務(wù)產(chǎn)生影響,請(qǐng)申請(qǐng)時(shí)間窗口進(jìn)行處理
注意該工具只適用于k8s版本v1.18.5、請(qǐng)按照服務(wù)器架構(gòu)選擇對(duì)應(yīng)的版本
相關(guān)說明:
證書到期后 kube-scheduler 和 kube-controoler-manager 會(huì)出現(xiàn)異常,原先已經(jīng)運(yùn)行的Pod還能工作,當(dāng)Pod出現(xiàn)異常重啟或是被刪除后無(wú)法自動(dòng)重建。證書更新后需要重啟 master 的 靜態(tài) Pods。因?yàn)閯?dòng)態(tài)證書重載目前還不被所有組件和證書支持,所有這項(xiàng)操作是必須的。 靜態(tài) Pods 是被本地 kubelet 而不是 API Server 管理, 所以 kubectl 不能用來刪除或重啟他們。
證書更新需要在所有k8s節(jié)點(diǎn)操作,使用定制的 kubeadm 工具更新證書,請(qǐng)按照以下步驟執(zhí)行:
1.下載定制的 kubeadm 二進(jìn)制文件,并上傳到服務(wù)器,下載鏈接如下:
2.master節(jié)點(diǎn)執(zhí)行如下命令,查看 k8s 組件證書有效期,RESIDUAL TIME 為 “invalid” 則表示已過期,如果沒過期也可以提前續(xù)約;
kubeadm alpha certs check-expiration
3.對(duì)證書和配置進(jìn)行備份,所有節(jié)點(diǎn)需要操作;
cp -a /etc/kubernetes /etc/kubernetes.bak
master節(jié)點(diǎn)再備份config配置
cp /root/.kube/config /root/.kube/config.bak
4.使用定制的 kubeadm 進(jìn)行續(xù)約操作,所有master節(jié)點(diǎn)需要操作;
chmod u+x kubeadm-10y
./kubeadm-10y alpha certs renew all
5.執(zhí)行以下命令,所有master節(jié)點(diǎn)使用更新后的 admin.conf 替換 /root/.kube/config 文件,出現(xiàn)提示時(shí),輸入 y 后回車;
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
y
6.master節(jié)點(diǎn)執(zhí)行以下命令,查看 k8s 組件證書更新情況,RESIDUAL TIME 為 <數(shù)字>y 則標(biāo)識(shí)證書已更新,且有效期10年;
kubeadm alpha certs check-expiration
7.master節(jié)點(diǎn)使用 kubectl 命令,檢查輸出是否正常
kubectl get pod -A
kubectl get node
8.所有master節(jié)點(diǎn)載入基礎(chǔ)鏡像防止部分節(jié)點(diǎn)缺少基礎(chǔ)鏡像
docker load -i /usr/share/proton-cs/images.tar
9.重啟服務(wù)使得所有組件能使用新證書進(jìn)行工作,master節(jié)點(diǎn)逐臺(tái)運(yùn)行以下命令,以降低重啟的影響:
docker restart `docker ps | grep -E 'kube-apiserver|kube-scheduler|kube-controller|etcd|apigateway' | grep kube-system | grep -v 'anyrobot\|calico' | awk '{print $1}' | xargs` &>/dev/null
systemctl restart kubelet
10. 服務(wù)啟動(dòng)后還需檢查kubelet 輪換證書是否已經(jīng)過期,如果已經(jīng)過期,需要參照 KB-3125 進(jìn)行處理,檢查方法如下,每個(gè)k8s節(jié)點(diǎn)執(zhí)行命令:
openssl x509 -noout -in /var/lib/kubelet/pki/kubelet-client-current.pem -text| grep -i not
Not Before 指證書有效開始時(shí)間,Not After 指證書有效截至?xí)r間,如果 Not After 小于當(dāng)前時(shí)間,說明證書已經(jīng)過期,且沒有自動(dòng)輪換,需要手動(dòng)干預(yù)解決文章來源:http://www.zghlxwxcb.cn/news/detail-857259.html
比如,當(dāng)前時(shí)間是2024年1月16日,Not After 為 2023年5月6日,說明已經(jīng)過期,需要參照 KB-3125 進(jìn)行處理文章來源地址http://www.zghlxwxcb.cn/news/detail-857259.html
到了這里,關(guān)于在不能升級(jí)版本的情況下,解決k8s證書到期且續(xù)約只有1年的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!