k8s-證書到期輪換

場景:kubernetes(1.1.2版本)默認證書有效期是一年是目,到期后需要重新生成

方案一:集群處于不可用狀態(tài)渠欺,手動更新證書和配置文件

重新生成證書

在所有控制平面執(zhí)行以下命令,備份或刪除過期證書

mkdir -p /etc/kubernetes/pki.bak/etcd
cd /etc/kubernetes/pki
mv apiserver* front-proxy-client* /etc/kubernetes/pki.bak
cd /etc/kubernetes/pki/etcd/
mv healthcheck-client* peer* server* /etc/kubernetes/pki.bak/etcd

可以選擇保留ca證書跳纳,ca證書有效期一般為10年面氓,可以重用,不需要刪除

如果選擇刪除所有證書霹疫,這樣的話就需要手動將第一個控制平面新生成的ca證書copy到其它控制平面的對應(yīng)目錄中

ca證書如下:

/etc/kubernetes/pki/ca.crt
/etc/kubernetes/pki/ca.key
/etc/kubernetes/pki/front-proxy-ca.crt
/etc/kubernetes/pki/front-proxy-ca.key
/etc/kubernetes/pki/sa.key
/etc/kubernetes/pki/sa.pub
/etc/kubernetes/pki/etcd/ca.crt
/etc/kubernetes/pki/etcd/ca.key

執(zhí)行以下命令生成新證書

kubeadm alpha phase certs all --config=kubeadm.yaml

其中kubeadm.yaml為初始化集群時使用的配置文件,具體配置如下
(kubeadm config view)

kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta1
controlPlaneEndpoint: "192.168.100.170:6443"
apiServer:
  certSANS:
  - master1
  - master2
  - master3
  - 192.168.100.170
  - 192.168.100.171
  - 192.168.100.181
  - 192.168.100.191

重新生成配置文件

在每個控制平面節(jié)點執(zhí)行以下命令综芥,備份并重新生成配置文件丽蝎,包括admin.conf、controller-manager.conf膀藐、kubelet.conf屠阻、scheduler.conf

cd /etc/kubernetes
mkdir conf.bak 
mv *.conf conf.bak/
kubeadm alpha phase kubeconfig all --config kubeadm.yaml

在每個worker節(jié)點執(zhí)行以下命令,備份重新生成kubelet的配置文件

cd /etc/kubernetes
mkdir conf.bak 
mv *.conf conf.bak/
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) --config kubeadm.yaml > /etc/kubernetes/kubelet.conf

注意额各,一般來說worker節(jié)點上只有ca.crt證書国觉,沒有ca.key,生成配置文件時會報錯虾啦,這時需要從控制平面將ca.key拷貝過來麻诀,配置文件生成完畢后即可刪除。上述命令在某版本執(zhí)行時報錯 可以改寫為:kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) --apiserver-advertise-address 192.168.100.170 > /etc/kubernetes/kubelet.conf

在每個worker節(jié)點執(zhí)行以下命令傲醉,備份或刪除過期的證書(kubelet啟動時會自動生成pki目錄及證書)蝇闭,然后重啟kubelet。

mv /var/lib/kubelet/pki /var/lib/kubelet/pki.bak
systemctl daemon-reload && systemctl restart kubelet

注意:命令執(zhí)行過程中可能有配置文件版本與kubeadm不配套的情況硬毕,這時候按提示升級配置文件即可呻引,如下

kubeadm config migrate --old-config old.yaml --new-config new.yaml

最后重啟管理部件pod,包括etcd吐咳,apiserver逻悠,controller-manager,scheduler韭脊。如果集群不可用蹂风,可以到對應(yīng)節(jié)點上通過docker rm 的方式刪除容器,kubelet會自動拉起新的pod

踩坑:
etcd證書使用本地外部yaml生成
kubeadm init phase certs all --config=/home/kubernetes/config_1.13_local_etcd.yaml

當出現(xiàn) Unable to connect to the server: x509: certificate has expired or is not yet valid


image.png

mv ~/.kube/config ~/.kube/config.bak && cp /etc/kubernetes/admin.conf ~/.kube/config

方案二:(未實踐)如果集群正常使用中乾蓬,則可以使用kubeadm進行證書輪換

檢查證書是否過期

root@master1:~/.kube# kubeadm alpha certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Dec 30, 2020 02:43 UTC   364d            no      
apiserver                  Dec 30, 2020 02:25 UTC   364d            no      
apiserver-etcd-client      Dec 30, 2020 02:25 UTC   364d            no      
apiserver-kubelet-client   Dec 30, 2020 02:25 UTC   364d            no      
controller-manager.conf    Jul 07, 2020 08:16 UTC   189d            no      
etcd-healthcheck-client    Jul 04, 2020 09:26 UTC   186d            no      
etcd-peer                  Jul 04, 2020 09:26 UTC   186d            no      
etcd-server                Jul 04, 2020 09:26 UTC   186d            no      
front-proxy-client         Dec 30, 2020 02:25 UTC   364d            no      
scheduler.conf             Jul 07, 2020 08:16 UTC   189d            no 

證書輪換

# Step 1): Backup old certs and kubeconfigs
mkdir /etc/kubernetes.bak
cp -r /etc/kubernetes/pki/ /etc/kubernetes.bak
cp /etc/kubernetes/*.conf /etc/kubernetes.bak

# Step 2): Renew all certs
kubeadm alpha certs renew all --config kubeadm.yaml

# Step 3): Renew all kubeconfigs
kubeadm alpha kubeconfig user --client-name=admin
kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf

# Another way to renew kubeconfigs
# kubeadm init phase kubeconfig all --config kubeadm.yaml

# Step 4): Copy certs/kubeconfigs and restart Kubernetes services
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惠啄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撵渡,老刑警劉巖融柬,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趋距,居然都是意外死亡粒氧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門节腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來外盯,“玉大人,你說我怎么就攤上這事翼雀”ス叮” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵狼渊,是天一觀的道長箱熬。 經(jīng)常有香客問我,道長狈邑,這世上最難降的妖魔是什么城须? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮米苹,結(jié)果婚禮上糕伐,老公的妹妹穿的比我還像新娘。我一直安慰自己蘸嘶,他們只是感情好良瞧,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著亏较,像睡著了一般莺褒。 火紅的嫁衣襯著肌膚如雪掩缓。 梳的紋絲不亂的頭發(fā)上雪情,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音你辣,去河邊找鬼巡通。 笑死,一個胖子當著我的面吹牛舍哄,可吹牛的內(nèi)容都是我干的宴凉。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼表悬,長吁一口氣:“原來是場噩夢啊……” “哼弥锄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤籽暇,失蹤者是張志新(化名)和其女友劉穎温治,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戒悠,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡熬荆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了绸狐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卤恳。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寒矿,靈堂內(nèi)的尸體忽然破棺而出突琳,到底是詐尸還是另有隱情,我是刑警寧澤劫窒,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布本今,位于F島的核電站,受9級特大地震影響主巍,放射性物質(zhì)發(fā)生泄漏冠息。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一孕索、第九天 我趴在偏房一處隱蔽的房頂上張望逛艰。 院中可真熱鬧,春花似錦搞旭、人聲如沸散怖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镇眷。三九已至,卻和暖如春翎嫡,著一層夾襖步出監(jiān)牢的瞬間欠动,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工惑申, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留具伍,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓圈驼,卻偏偏與公主長得像人芽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绩脆,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361