摘要:輪換證書是一次性操作,新生成的證書有效期為年。其他應用通過輪換證書業務集群注可用版本對于以及更高版本,可通過對集群證書進行更新。
在Rancher 2.0和2.1中,Rancher配置集群的自動生成證書的有效期為1年,本文將為您詳細介紹如何輪換證書,即使您的證書已經過期也可從文章中獲得具體的操作指南。
Kubernetes集群通常使用ssl證書來加密通信,Rancher會自動為集群生成證書。在Rancher v2.0.14、v2.1.9之前的版本,Rancher配置集群的自動生成證書的有效期為1年,這意味著如果您在大約1年前使用這些版本創建了Rancher配置集群,那么您需要盡快開始輪換證書,否則證書過期后集群將進入錯誤狀態。輪換證書是一次性操作,新生成的證書有效期為10年。
本文將為您詳細介紹如何進行輪換證書的操作。即使您的證書現在已經過期,您也可以依照以下步驟進行證書的輪換。但請注意先不要升級rancher server,根據本文最后一節【證書已過期導致無法連接k8s】進行處理。
注意
在重新啟動組件時,輪換Kubernetes證書可能會導致您的群集暫時不可用。此外,對于生產環境,建議在維護窗口期間執行此操作。
通過UI輪換證書(業務集群)
注:可用版本 Rancher v2.2.0 +
在Rancher v2.2.0以及更高版本,可通過UI的證書輪換功能對集群證書進行更新,此功能適用于【自定義安裝的集群】。
證書輪換之后,Kubernetes組件將自動重新啟動,重啟不影響應用Pod,重啟時間需要3到5分鐘。
證書輪換可用于下列服務:
etcd
kubelet
kube-apiserver
kube-proxy
kube-scheduler
kube-controller-manager
通過UI輪換證書,目前支持:
批量更新所有服務證書(CA證書不變)
更新某個指定服務(CA證書不變)
(重要)集群更新
如果Rancher版本是從v2.x.x升級到2.2.x,則需要先做一次集群更新操作。
1、進入【全局集群視圖】;
2、選擇【目標集群】右側的【省略號菜單】,選擇升級;
3、點擊右側【顯示高級選項】,檢查【Etcd快照輪換】功能是否開啟,建議開啟此功能;
4、在【授權集群訪問地址】中,檢查功能是否已開啟,建議開始此功能,下邊的域名可以不用填寫;
5、最后點擊【保存】,集群將自動進行更新
輪換證書
1、進入【全局集群視圖】;
2、選擇對應集群右側的【省略號菜單】,選擇更新證書有效期;
3、選擇更新所有服務證書,并點擊保存
4、集群將自動更新證書
5、因為證書改變,相應的token也會變化,在集群證書更新完成后,需要對連接API SERVER的Pod進行重建,以獲取新的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
其他應用Pod
通過UI API輪換證書(業務集群)
注:可用版本 Rancher v2.0.14+ v2.1.9+
對于Rancher v2.0.14、v2.1.9以及更高版本,可通過API對集群證書進行更新。API證書輪換將會同時對所有組件證書進行更新,不支持指定組件更新證書。
1、在【全局】視圖中,定位到需要更新證書的集群,然后點擊右側省略號菜單,然后點擊【API查看】。
2、點擊右上方的RotateCertificates
3、點擊 Show Request
4、點擊 Send Request
5、因為證書改變,相應的token也會變化,在集群證書更新完成后,需要對連接API SERVER的Pod進行重建,以獲取新的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
其他應用Pod
RKE 證書輪換(local集群和業務集群通用)
注:可用版本 rke v0.2.0+如果以前是通過rke v0.2.0之前的版本創建的Kubernetes集群,在輪換證書前先執行rke up操作,請參考:https://www.cnrancher.com/doc...
通過RKE輪換證書,目前支持:
批量更新所有服務證書(CA證書不變)
更新某個指定服務(CA證書不變)
輪換CA和所有服務證書
1、批量更新所有服務證書(CA證書不變)
2、更新指定服務(CA證書不變)
3、輪換CA和所有服務證書
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、因為證書改變,相應的token也會變化,在集群證書更新完成后,需要對連接API SERVER的Pod進行重建,以獲取新的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
其他應用Pod
獨立容器Rancher server證書更新
Rancher v2.0.14+ 、v2.1.9+、v2.2.0+會自動檢查證書有效期,如果發現證書過期,將會自動生成新的證書。所以獨立容器運行的Rancher server只需把rancher版本升級到支持的版本,無需做其他操作。
故障處理
提示CA證書為空
如果執行更新證書后出現如下錯誤提示,因為沒有執行集群更新操作。
解決方法
1、選擇對應問題集群,然后查看瀏覽器的集群ID,如下圖:
2、執行命令 kubectl edit clusters
如果Rancher是HA安裝,直接在local集群中,通過rke生成的kube配置文件執行以上命令;
如果Rancher是單容器運行,通過docker exec -ti <容器ID> bash進入容器中,然后執行apt install vim -y安裝vim工具,然后再執行以上命令;
3、刪除spec.rancherKubernetesEngineConfig.rotateCertificates層級下的配置參數:
修改為
輸入:wq保存yaml文件后集群將自動更新,更新完成后再進行證書更新。
證書已過期導致無法連接K8S
如果集群證書已經過期,那么即使升級到Rancher v2.0.14、v2.1.9以及更高版本也無法輪換證書。rancher是通過Agent去更新證書,如果證書過期將無法與Agent連接。
解決方法
可以手動設置節點的時間,把時間往后調整一些。因為Agent只與K8S master和Rancher server通信,如果rancher server證書未過期,那就只需調整K8S master節點時間。
調整命令:
然后再對rancher server進行升級,接著按照證書輪換步驟進行證書輪換,等到證書輪換完成后再把時間同步回來。
檢查證書有效期
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33000.html
摘要:距離上一次版本發布三個月之隔,是今年的第三個主要版本。證書輪換證書輪換功能現已進入狀態。這一功能可以在當前證書到期時自動續訂密鑰和服務器的證書。更多包含許多修復和內部組件的改進,此次的更新明顯側重于穩定核心以及使現有的功能成熟。 Kubernetes1.12已于今日全新發布!Kubelet證書輪換、資源配額優先級、掛載命名空間、對Azure的增強支持等10大亮點功能,本文為你一一解讀!...
摘要:從開始,部署管理的集群時,默認情況下會啟用授權群集端點功能。我們將首先在中創建一個新項目,該項目將使用功能與我們的集群集成。完成后單擊創建項目。這不僅意味著已被設為默認值,還能夠觸發構建。例如,負載均衡選項卡顯示已部署的以及創建的主機名。 介 紹 在這篇文章中,我們將介紹如何將GitLab的Auto DevOps功能與Rancher管理的Kubernetes集群連接起來,利用Ranch...
摘要:部署只是一種規則,控制器組件會將這一規則應用于實際負載均衡器中。原因是功能僅允許將端口用于路由,負載均衡器和則可作為全局啟動。負載均衡的限制提供了功能豐富的負載均衡器支持詳細介紹在此。截至目前,我們暫時無法使用工具將負載均衡器配置從轉換為。 如果您的應用程序是面向大量用戶、會吸引大量流量,那么一個不變的目標一定是在高效滿足用戶需求的同時、不讓用戶感知到任何類似于服務器繁忙!的情況。這一...
摘要:近期,儀表盤和外部代理接連被發現存在安全問題。本文將更深入解讀這兩個安全漏洞的原理會對您的部署造成的影響以及相應的應對之策。在中,儀表盤作為每個集群環境的一部分包含在內但是,部署不受影響,因為充當了儀表盤的身份驗證授權和代理。 近期,Kubernetes儀表盤和外部IP代理接連被發現存在安全問題。針對這兩個漏洞,Kubernetes發布了相應的補丁版本供會受漏洞影響的用戶解決問題。本文...
閱讀 849·2023-04-25 21:21
閱讀 3231·2021-11-24 09:39
閱讀 3072·2021-09-02 15:41
閱讀 2001·2021-08-26 14:13
閱讀 1833·2019-08-30 11:18
閱讀 2776·2019-08-29 16:25
閱讀 510·2019-08-28 18:27
閱讀 1585·2019-08-28 18:17