溫馨提示×

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

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

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

發(fā)布時(shí)間:2020-06-28 06:57:22 來源:網(wǎng)絡(luò) 閱讀:1207 作者:RancherLabs 欄目:云計(jì)算

Kubernetes集群通常使用ssl證書來加密通信,Rancher會(huì)自動(dòng)為集群生成證書。在Rancher v2.0.14、v2.1.9之前的版本,Rancher配置集群的自動(dòng)生成證書的有效期為1年,這意味著如果您在大約1年前使用這些版本創(chuàng)建了Rancher配置集群,那么您需要盡快開始輪換證書,否則證書過期后集群將進(jìn)入錯(cuò)誤狀態(tài)。輪換證書是一次性操作,新生成的證書有效期為10年。

?

本文將為您詳細(xì)介紹如何進(jìn)行輪換證書的操作。即使您的證書現(xiàn)在已經(jīng)過期,您也可以依照以下步驟進(jìn)行證書的輪換。但請(qǐng)注意先不要升級(jí)rancher server,根據(jù)本文最后一節(jié)【證書已過期導(dǎo)致無法連接k8s】進(jìn)行處理。

注意
在重新啟動(dòng)組件時(shí),輪換Kubernetes證書可能會(huì)導(dǎo)致您的群集暫時(shí)不可用。此外,對(duì)于生產(chǎn)環(huán)境,建議在維護(hù)窗口期間執(zhí)行此操作。


通過UI輪換證書(業(yè)務(wù)集群)


注:可用版本?Rancher v2.2.0 +

在Rancher v2.2.0以及更高版本,可通過UI的證書輪換功能對(duì)集群證書進(jìn)行更新,此功能適用于【自定義安裝的集群】。

證書輪換之后,Kubernetes組件將自動(dòng)重新啟動(dòng),重啟不影響應(yīng)用Pod,重啟時(shí)間需要3到5分鐘。

證書輪換可用于下列服務(wù):

  • etcd

  • kubelet

  • kube-apiserver

  • kube-proxy

  • kube-scheduler

  • kube-controller-manager


通過UI輪換證書,目前支持:

  • 批量更新所有服務(wù)證書(CA證書不變)

  • 更新某個(gè)指定服務(wù)(CA證書不變)


(重要)集群更新

如果Rancher版本是從v2.x.x升級(jí)到2.2.x,則需要先做一次集群更新操作。

1、進(jìn)入【全局\集群視圖】;

2、選擇【目標(biāo)集群】右側(cè)的【省略號(hào)菜單】,選擇升級(jí);

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

3、點(diǎn)擊右側(cè)【顯示高級(jí)選項(xiàng)】,檢查【Etcd快照輪換】功能是否開啟,建議開啟此功能;

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

4、在【授權(quán)集群訪問地址】中,檢查功能是否已開啟,建議開始此功能,下邊的域名可以不用填寫;

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

5、最后點(diǎn)擊【保存】,集群將自動(dòng)進(jìn)行更新

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

輪換證書

1、進(jìn)入【全局\集群視圖】;

2、選擇對(duì)應(yīng)集群右側(cè)的【省略號(hào)菜單】,選擇更新證書有效期;

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

3、選擇更新所有服務(wù)證書,并點(diǎn)擊保存

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

4、集群將自動(dòng)更新證書

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

5、因?yàn)樽C書改變,相應(yīng)的token也會(huì)變化,在集群證書更新完成后,需要對(duì)連接API SERVER的Pod進(jìn)行重建,以獲取新的token。

  • cattle-system/cattle-cluster-agent

  • cattle-system/cattle-node-agent

  • cattle-system/kube-api-auth

  • ingress-nginx/nginx-ingress-controller

  • kube-system/canal

  • kube-system/kube-dns

  • kube-system/kube-dns-autoscaler

  • 其他應(yīng)用Pod


通過UI API輪換證書(業(yè)務(wù)集群)


注:可用版本 Rancher v2.0.14+ v2.1.9+

對(duì)于Rancher v2.0.14、v2.1.9以及更高版本,可通過API對(duì)集群證書進(jìn)行更新。API證書輪換將會(huì)同時(shí)對(duì)所有組件證書進(jìn)行更新,不支持指定組件更新證書。

1、在【全局】視圖中,定位到需要更新證書的集群,然后點(diǎn)擊右側(cè)省略號(hào)菜單,然后點(diǎn)擊【API查看】。

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

2、點(diǎn)擊右上方的RotateCertificates

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

3、點(diǎn)擊?Show Request

4、點(diǎn)擊?Send Request

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

5、因?yàn)樽C書改變,相應(yīng)的token也會(huì)變化,在集群證書更新完成后,需要對(duì)連接API SERVER的Pod進(jìn)行重建,以獲取新的token。

  • cattle-system/cattle-cluster-agent

  • cattle-system/cattle-node-agent

  • cattle-system/kube-api-auth

  • ingress-nginx/nginx-ingress-controller

  • kube-system/canal

  • kube-system/kube-dns

  • kube-system/kube-dns-autoscaler

  • 其他應(yīng)用Pod


RKE 證書輪換(local集群和業(yè)務(wù)集群通用)


注:可用版本?rke v0.2.0+

如果以前是通過rke v0.2.0之前的版本創(chuàng)建的Kubernetes集群,在輪換證書前先執(zhí)行rke up操作,請(qǐng)參考:?

https://www.cnrancher.com/docs/rke/latest/cn/cert-mgmt/

通過RKE輪換證書,目前支持:

  • 批量更新所有服務(wù)證書(CA證書不變)

  • 更新某個(gè)指定服務(wù)(CA證書不變)

  • 輪換CA和所有服務(wù)證書


1、批量更新所有服務(wù)證書(CA證書不變)

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

2、更新指定服務(wù)(CA證書不變)

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

3、輪換CA和所有服務(wù)證書

rke?cert?rotate?--rotate-ca

INFO[0000]?Initiating?Kubernetes?cluster
INFO[0000]?Rotating?Kubernetes?cluster?certificates
INFO[0000]?[certificates]?Generating?CA?kubernetes?certificates
INFO[0000]?[certificates]?Generating?Kubernetes?API?server?aggregation?layer?requestheader?client?CA?certificates
INFO[0000]?[certificates]?Generating?Kubernetes?API?server?certificates
INFO[0000]?[certificates]?Generating?Kube?Controller?certificates
INFO[0000]?[certificates]?Generating?Kube?Scheduler?certificates
INFO[0000]?[certificates]?Generating?Kube?Proxy?certificates
INFO[0000]?[certificates]?Generating?Node?certificate
INFO[0001]?[certificates]?Generating?admin?certificates?and?kubeconfig
INFO[0001]?[certificates]?Generating?Kubernetes?API?server?proxy?client?certificates
INFO[0001]?[certificates]?Generating?etcd-xxxxx?certificate?and?key
INFO[0001]?[certificates]?Generating?etcd-yyyyy?certificate?and?key
INFO[0001]?[certificates]?Generating?etcd-zzzzz?certificate?and?key
INFO[0001]?Successfully?Deployed?state?file?at?[./cluster.rkestate]
INFO[0001]?Rebuilding?Kubernetes?cluster?with?rotated?certificates

4、因?yàn)樽C書改變,相應(yīng)的token也會(huì)變化,在集群證書更新完成后,需要對(duì)連接API SERVER的Pod進(jìn)行重建,以獲取新的token

  • cattle-system/cattle-cluster-agent

  • cattle-system/cattle-node-agent

  • cattle-system/kube-api-auth

  • ingress-nginx/nginx-ingress-controller

  • kube-system/canal

  • kube-system/kube-dns

  • kube-system/kube-dns-autoscaler

  • 其他應(yīng)用Pod


獨(dú)立容器Rancher server證書更新


Rancher v2.0.14+ 、v2.1.9+、v2.2.0+會(huì)自動(dòng)檢查證書有效期,如果發(fā)現(xiàn)證書過期,將會(huì)自動(dòng)生成新的證書。所以獨(dú)立容器運(yùn)行的Rancher server只需把rancher版本升級(jí)到支持的版本,無需做其他操作。


故障處理


提示CA證書為空

如果執(zhí)行更新證書后出現(xiàn)如下錯(cuò)誤提示,因?yàn)闆]有執(zhí)行集群更新操作。

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

解決方法

1、選擇對(duì)應(yīng)問題集群,然后查看瀏覽器的集群ID,如下圖:

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

2、執(zhí)行命令?kubectl edit clusters <clusters_ID>

  • 如果Rancher是HA安裝,直接在local集群中,通過rke生成的kube配置文件執(zhí)行以上命令;

  • 如果Rancher是單容器運(yùn)行,通過docker exec -ti <容器ID> bash進(jìn)入容器中,然后執(zhí)行apt install vim -y安裝vim工具,然后再執(zhí)行以上命令;


3、刪除spec.rancherKubernetesEngineConfig.rotateCertificates層級(jí)下的配置參數(shù):

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

修改為

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

輸入:wq保存yaml文件后集群將自動(dòng)更新,更新完成后再進(jìn)行證書更新。

證書已過期導(dǎo)致無法連接K8S

如果集群證書已經(jīng)過期,那么即使升級(jí)到Rancher v2.0.14、v2.1.9以及更高版本也無法輪換證書。rancher是通過Agent去更新證書,如果證書過期將無法與Agent連接。

解決方法

可以手動(dòng)設(shè)置節(jié)點(diǎn)的時(shí)間,把時(shí)間往后調(diào)整一些。因?yàn)锳gent只與K8S master和Rancher server通信,如果rancher server證書未過期,那就只需調(diào)整K8S master節(jié)點(diǎn)時(shí)間。

調(diào)整命令:

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

然后再對(duì)rancher server進(jìn)行升級(jí),接著按照證書輪換步驟進(jìn)行證書輪換,等到證書輪換完成后再把時(shí)間同步回來。

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書

檢查證書有效期

重要提醒 | 手動(dòng)輪換Rancher Kubernetes集群的證書




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

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

AI