最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8s集群(kubeadm)CA證書(shū)過(guò)期的解決過(guò)程

 更新時(shí)間:2026年01月24日 10:40:20   作者:云計(jì)算-Security  
在K8s集群中,CA證書(shū)和Token都會(huì)過(guò)期,導(dǎo)致新節(jié)點(diǎn)無(wú)法加入集群,需要備份舊證書(shū),重新生成新證書(shū)和配置文件,更新kubectl配置,重啟kubelet,重新加入工作節(jié)點(diǎn),驗(yàn)證集群節(jié)點(diǎn)狀態(tài)和健康狀況,確保K8s集群正常運(yùn)行

一、現(xiàn)象描述

之前有篇文章《K8s Token 過(guò)期解決方案(Kubeadm)》提到了默認(rèn)生成的 Token 有效期只有 24 小時(shí),過(guò)期后 Token 將不可用,如果想新的 Node 節(jié)點(diǎn)加入 K8s 集群,則需重新生成新的 Token。

今天無(wú)意間打開(kāi)我虛擬機(jī)部署的 K8s 集群(通過(guò) kubeadm 方式部署),發(fā)現(xiàn) CA 證書(shū)過(guò)期了(如下圖):

kubectl get pods

于是查看我的 K8s 集群證書(shū),顯示證書(shū)都過(guò)期了(如下圖):

# 查看證書(shū)過(guò)期時(shí)間 => k8s1.15+版本的查看方法
kubeadm certs check-expiration

字段說(shuō)明:

字段解釋
CERTIFICATE證書(shū)的名稱
EXPIRES證書(shū)過(guò)期的時(shí)間點(diǎn)
RESIDUAL TIME當(dāng)前時(shí)間距離證書(shū)過(guò)期的剩余時(shí)間
CERTIFICATE AUTHORITY證書(shū)的頒發(fā)機(jī)構(gòu)
EXTERNALLY MANAGED證書(shū)是否由外部系統(tǒng)管理

證書(shū)字段詳解:

CERTIFICATEEXPIRESRESIDUAL TIMECERTIFICATE AUTHORITYEXTERNALLY MANAGED備注
admin.confDec 12, 2023 03:36 UTCcanoKubeconfig 文件,包含集群訪問(wèn)的配置
apiserverDec 12, 2023 03:36 UTCcanoKubernetes API 服務(wù)器的證書(shū)
apiserver-etcd-clientDec 12, 2023 03:36 UTCetcd-canoAPI 服務(wù)器與 ETCD 之間的客戶端證書(shū)
apiserver-kubelet-clientDec 12, 2023 03:36 UTCcanoAPI 服務(wù)器與 Kubelet 之間的客戶端證書(shū)
controller-manager.confDec 12, 2023 03:36 UTCcanoKubernetes 控制器管理器的 Kubeconfig 文件
etcd-healthcheck-clientDec 12, 2023 03:36 UTCetcd-cano用于 ETCD 健康檢查的客戶端證書(shū)
etcd-peerDec 12, 2023 03:36 UTCetcd-canoETCD 節(jié)點(diǎn)間的對(duì)等通信證書(shū)
etcd-serverDec 12, 2023 03:36 UTCetcd-canoETCD 服務(wù)器的證書(shū)
front-proxy-clientDec 12, 2023 03:36 UTCfront-proxy-cano前端代理的客戶端證書(shū)
scheduler.confDec 12, 2023 03:36 UTCcanoKubernetes 調(diào)度器的 Kubeconfig 文件

顯然,上表中的這些證書(shū)在 2023 年 12 月 12 日 03:36 UTC 就已經(jīng)過(guò)期,且剩余時(shí)間為<invalid>,表示這些證書(shū)已過(guò)期(無(wú)效),需要重新生成。

證書(shū)頒發(fā)機(jī)構(gòu)字段解釋?zhuān)?/strong>

CERTIFICATE AUTHORITYEXPIRESRESIDUAL TIMEEXTERNALLY MANAGED備注
caDec 09, 2032 03:36 UTC8年noKubernetes 的主證書(shū)頒發(fā)機(jī)構(gòu)
etcd-caDec 09, 2032 03:36 UTC8年noETCD 的證書(shū)頒發(fā)機(jī)構(gòu)
front-proxy-caDec 09, 2032 03:36 UTC8年no前端代理的證書(shū)頒發(fā)機(jī)構(gòu)

二、解決方案

1、對(duì)過(guò)期證書(shū)進(jìn)行備份,并刪除舊的證書(shū)

# 備份證書(shū)
cp -rp /etc/kubernetes /etc/kubernetes.bak

# 刪除舊的證書(shū)(使用新版本的新命令生成證書(shū)時(shí)可以忽略這一步,即可以不用刪除)
# rm -f /etc/kubernetes/pki/apiserver*
# rm -f /etc/kubernetes/pki/front-proxy-client.*
# rm -rf /etc/kubernetes/pki/etcd/healthcheck-client.*
# rm -rf /etc/kubernetes/pki/etcd/server.*
# rm -rf /etc/kubernetes/pki/etcd/peer.*

2、重新生成證書(shū)

# 新版本(1.15+) - - 使用該命令不用提前刪除過(guò)期證書(shū)
kubeadm certs renew all

# 老版本
# kubeadm alpha certs renew all

3、備份舊的配置文件,并重新生成新的配置文件

mv /etc/kubernetes/*.conf /tmp/

# 新版本(1.15+)
kubeadm init phase kubeconfig all

# 老版本
# kubeadm alpha phase kubeconfig all

4、更新 kubectl 配置

# 備份配置文件
cp -rp ~/.kube/config ~/.kube/config.bak

# 更新配置文件
\cp /etc/kubernetes/admin.conf ~/.kube/config

# 修改權(quán)限
chown $(id -u):$(id -g) $HOME/.kube/config

5、證書(shū)過(guò)期時(shí)間確認(rèn)

# 新版本(1.15+)查看方法
kubeadm certs check-expiration

# 單獨(dú)查看(其他同理)
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep 'Not'

# 老版本查看方法
# kubeadm alpha certs check-expiration

CA 證書(shū)時(shí)間已經(jīng)更新,

6、重啟 kubelet

所有 work 節(jié)點(diǎn)執(zhí)行,如果你的 master 節(jié)點(diǎn)也作為 work 節(jié)點(diǎn)使用,那 master 節(jié)點(diǎn)也需要執(zhí)行重啟 kubelet 的操作。

systemctl restart kubelet
systemctl status kubelet

7、查看集群節(jié)點(diǎn)狀態(tài)

發(fā)現(xiàn) work 節(jié)點(diǎn)不健康,這個(gè)時(shí)候我們需要重新將work 節(jié)點(diǎn)加入 k8s 集群

1)先查看集群中是否有 Token

kubeadm token list

2)沒(méi)有則重新生成 Token

# 生成默認(rèn) 24 小時(shí) Token(推薦)
kubeadm token create

# 生成永久有效 Token
# kubeadm token create --ttl 0

3)獲取 CA 證書(shū) Hash 值

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

4)最后就是 work 節(jié)點(diǎn)加入 K8s 集群

以 work1 節(jié)點(diǎn)為例,work2 節(jié)點(diǎn)及其他 work 節(jié)點(diǎn)同理。

# 填入上圖生成的 token、hash 值,并加入集群。
kubeadm join 192.168.56.160:6443 --token zlj5j5.3ezp1s8drj3jgept --discovery-token-ca-cert-hash sha256:3ed701329742f7549f73cb065a8677abe8b5b8a3e25bbca7bb26f317ffcf89d4

執(zhí)行后報(bào)錯(cuò):

報(bào)錯(cuò)原因:這些文件為舊文件(過(guò)期的文件),我們備份后清理即可

# 備份
cp -a /etc/kubernetes/kubelet.conf /tmp/kubelet.conf.back
cp -a /etc/kubernetes/pki/ca.crt /tmp/ca.crt.back

# 清理
rm -f /etc/kubernetes/kubelet.conf
rm -f /etc/kubernetes/pki/ca.crt

清理完成后,再次將 work 節(jié)點(diǎn)加入集群:

kubeadm join 192.168.56.160:6443 --token zlj5j5.3ezp1s8drj3jgept --discovery-token-ca-cert-hash sha256:3ed701329742f7549f73cb065a8677abe8b5b8a3e25bbca7bb26f317ffcf89d4

8、查看 k8s 集群節(jié)點(diǎn)健康狀態(tài)

kubectl get nodes

9、最后再驗(yàn)證以下證書(shū)過(guò)期時(shí)間

kubeadm certs check-expiration

無(wú)誤后,K8s 集群的 CA 證書(shū)更新完畢,此時(shí)打一個(gè)快照(因?yàn)槲沂翘摂M機(jī)),方便后續(xù)實(shí)驗(yàn)所用。

三、集群驗(yàn)證

K8s 集群證書(shū)過(guò)期時(shí)間更新完畢后,且集群節(jié)點(diǎn)也是健康的狀態(tài),那接下來(lái)我們跑一個(gè)測(cè)試服務(wù)驗(yàn)證一下集群是否可用。

kubectl create deployment nginx --image=nginx   # 創(chuàng)建單副本作為測(cè)試即可
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

瀏覽器訪問(wèn)驗(yàn)證:http://192.168.56.160:31122/

再看看 pod 所在 work 節(jié)點(diǎn):調(diào)度也是沒(méi)問(wèn)題的。

至此,K8s 集群驗(yàn)證完畢!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • k8s通過(guò)命令批量刪除pod方式

    k8s通過(guò)命令批量刪除pod方式

    文章介紹了如何在k8s中批量刪除失敗的pod,首先,通過(guò)查看所有pod的狀態(tài),篩選出非Running的記錄,然后,針對(duì)特定命名空間(如kube-system)的記錄進(jìn)行篩選,并使用grep命令查找?guī)в蠩victed字段的pod,通過(guò)awk獲取pod名稱,并使用xargs循環(huán)刪除這些失敗的pod
    2026-01-01
  • Kubernetes安全加固的一些實(shí)用建議

    Kubernetes安全加固的一些實(shí)用建議

    Kubernetes是一個(gè)自動(dòng)化的容器編排平臺(tái),它負(fù)責(zé)應(yīng)用的部署、應(yīng)用的彈性以及應(yīng)用的管理,這些都是基于容器的,下面這篇文章主要給大家介紹了關(guān)于Kubernetes安全加固的一些實(shí)用建議,需要的朋友可以參考下
    2022-02-02
  • k8s創(chuàng)建啟動(dòng)、刪除pod的實(shí)現(xiàn)過(guò)程

    k8s創(chuàng)建啟動(dòng)、刪除pod的實(shí)現(xiàn)過(guò)程

    Kubernetes中Pod是管理容器的最小單元,包括創(chuàng)建、管理和刪除過(guò)程,Pod狀態(tài)包括Pending、Running、Succeeded、Failed和Unknown
    2026-01-01
  • k8s平臺(tái)本地?cái)?shù)據(jù)遷移整改過(guò)程

    k8s平臺(tái)本地?cái)?shù)據(jù)遷移整改過(guò)程

    文章主要介紹了對(duì)k8s平臺(tái)默認(rèn)數(shù)據(jù)存儲(chǔ)位置進(jìn)行優(yōu)化,將數(shù)據(jù)統(tǒng)一管理并存至指定目錄和云磁盤(pán)的整個(gè)過(guò)程,包括新磁盤(pán)的創(chuàng)建掛載、配置更改生效、環(huán)境檢查、清理舊環(huán)境等步驟,強(qiáng)調(diào)在集群所有節(jié)點(diǎn)上進(jìn)行優(yōu)化,并提醒配置更改生效后建議重啟機(jī)器以確保變更生效
    2026-05-05
  • K8S Pod定向部署到指定節(jié)點(diǎn)的實(shí)現(xiàn)全過(guò)程

    K8S Pod定向部署到指定節(jié)點(diǎn)的實(shí)現(xiàn)全過(guò)程

    K8S Pod定向部署通過(guò)節(jié)點(diǎn)標(biāo)簽、親和性和污點(diǎn)三種機(jī)制實(shí)現(xiàn)資源適配、業(yè)務(wù)隔離與節(jié)點(diǎn)專(zhuān)屬化,適用于不同場(chǎng)景,選型建議為標(biāo)簽用于基礎(chǔ)、親和性用于彈性、污點(diǎn)用于資源保護(hù)
    2025-08-08
  • K8S修改Pod時(shí)間方案詳細(xì)代碼實(shí)例

    K8S修改Pod時(shí)間方案詳細(xì)代碼實(shí)例

    在Kubernetes中,修改Pod的時(shí)間通常指的是修改Pod的時(shí)區(qū)設(shè)置,因?yàn)镻od的時(shí)間戳(如創(chuàng)建時(shí)間)是由Kubernetes集群管理的,并且通常不建議直接修改,這篇文章主要介紹了K8S修改Pod時(shí)間方案的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • 在K8S中實(shí)現(xiàn)會(huì)話保持的兩種方案

    在K8S中實(shí)現(xiàn)會(huì)話保持的兩種方案

    這篇文章主要介紹了在K8S中實(shí)現(xiàn)會(huì)話保持的兩種方案,每種方案結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容詳解

    k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容詳解

    在實(shí)際生產(chǎn)系統(tǒng)中,經(jīng)常會(huì)遇到某個(gè)服務(wù)需要擴(kuò)容的場(chǎng)景,可能會(huì)遇到由于資源緊張或者工作負(fù)載降低而需要減少服務(wù)實(shí)例數(shù)量的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • MinIO分布式文件存儲(chǔ)(從入門(mén)到飛翔)

    MinIO分布式文件存儲(chǔ)(從入門(mén)到飛翔)

    MinIO是一款高性能的分布式對(duì)象存儲(chǔ)系統(tǒng),兼容Amazon S3協(xié)議,具有輕量級(jí)、易部署、高可用和可擴(kuò)展性等優(yōu)勢(shì),它通過(guò)糾刪碼技術(shù)實(shí)現(xiàn)數(shù)據(jù)冗余與高容錯(cuò)性,適用于私有云存儲(chǔ)、大數(shù)據(jù)分析和靜態(tài)資源托管等場(chǎng)景,本文介紹MinIO分布式文件存儲(chǔ)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-03-03
  • 如何使用Kubernetes自定義資源(CRD)詳解

    如何使用Kubernetes自定義資源(CRD)詳解

    自定義資源定義(CRD)是Kubernetes API擴(kuò)展,可以定義新的對(duì)象類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于如何使用Kubernetes自定義資源(CRD)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

丰原市| 建德市| 邳州市| 泰顺县| 寿阳县| 平顶山市| 禹州市| 南木林县| 莆田市| 弥勒县| 绥滨县| 沙坪坝区| 石河子市| 抚顺市| 新野县| 尚志市| 小金县| 和田市| 克什克腾旗| 休宁县| 漳浦县| 章丘市| 高密市| 松桃| 邮箱| 德令哈市| 嘉义市| 略阳县| 安国市| 山西省| 万荣县| 阿坝| 舒城县| 岐山县| 翁源县| 五常市| 南雄市| 高陵县| 肇源县| 巴彦淖尔市| 南丹县|