Kubernetes 憑證更新:完整指南及最佳實踐

更新於 發佈於 閱讀時間約 6 分鐘

在 Kubernetes 集群運行一段時間後,憑證可能會過期,影響集群的正常運行。因此,管理員需要定期檢查並更新憑證。本文將介紹如何使用 kubeadm 手動更新 Kubernetes 憑證,並提供一些最佳實踐來確保更新過程順利。

Kubernetes 憑證有效期限與更新頻率

Kubernetes 預設的憑證有效期限為 1 年(365 天),因此建議在到期前進行更新,以確保集群正常運作。

可以使用以下指令檢查憑證到期時間:

kubeadm certs check-expiration
raw-image


手動更新 Kubernetes 憑證

可以使用 kubeadm certs renew 命令來手動更新 Kubernetes 的憑證。此命令會使用 CA(或者 front-proxy-CA)憑證來更新存儲於 /etc/kubernetes/pki 中的密鑰。

更新所有憑證

執行以下指令來更新所有憑證:

raw-image

執行完此命令後,你會看到類似以下的輸出:

[root@k8s-master1 kubernetes]# kubeadm certs renew all
[renew] Reading configuration from the cluster...
[renew] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0411 18:39:49.556478 1094 utils.go:69] The recommended value for "clusterDNS" in "KubeletConfiguration" is: [10.233.0.10]; the provided value is: [169.254.25.10]

certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed
certificate for serving the Kubernetes API renewed
certificate for the API server to connect to kubelet renewed
certificate embedded in the kubeconfig file for the controller manager to use renewed
certificate for the front proxy client renewed
certificate embedded in the kubeconfig file for the scheduler manager to use renewed

Done renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.

重新啟動 Kubernetes 相關組件

由於動態憑證重載目前尚未完全支援所有組件,因此在更新憑證後,必須手動重啟 Kubernetes 的關鍵元件。

重新啟動 API Server、Scheduler 和 Controller Manager

Kubernetes 控制平面的關鍵元件(kube-apiserverkube-schedulerkube-controller-manager)通常運行於 Docker 容器中,因此可以使用以下指令來重啟這些元件:

docker ps |grep apiserver|grep -v pause|awk '{print $1}'|xargs docker kill -s HUP
docker ps |grep kube-scheduler|grep -v pause|awk '{print $1}'|xargs docker kill -s HUP
docker ps |grep kube-controller|grep -v pause|awk '{print $1}'|xargs docker kill -s HUP

這些指令會發送 HUP 訊號,強制這些容器重新載入配置和憑證。如果你使用的是 containerd 或其他容器運行時,請使用對應的命令來重啟這些組件。

重新啟動 kubelet

由於靜態 Pods 由 kubelet 而非 API Server 管理,因此 kubectl 無法直接刪除或重啟這些 Pods。

可以使用 systemctl 重新啟動 kubelet,讓其自動載入新的憑證:

systemctl restart kubelet

最佳實踐與建議

  1. 定期檢查憑證:建議設置定時任務(如 cronjob)來執行 kubeadm certs check-expiration,以確保不會因憑證過期導致服務中斷。
  2. 提前備份憑證與配置:在進行憑證更新前,先備份 /etc/kubernetes/pki//etc/kubernetes/admin.conf 以避免意外情況發生。
  3. 測試更新流程:在非正式環境先測試更新流程,確保所有應用與監控系統正常運作後,再在正式環境執行。
  4. 監控 Kubernetes 組件狀態:可以使用 kubectl get pods -n kube-system 來確認所有組件在更新後都正常運行。

總結

透過 kubeadm certs renew 命令,可以輕鬆更新 Kubernetes 的憑證,但要注意手動重啟相關組件以確保變更生效。為了避免集群因憑證過期而發生故障,建議定期檢查憑證狀態,並制定更新計劃,以確保系統穩定運行。

如果這篇Kubernetes 憑證的更新能幫助到你請留言告訴我,或與我分享你的使用經驗


avatar-img
小猴工程師
1會員
21內容數
留言
avatar-img
留言分享你的想法!
小猴工程師 的其他內容
LETSTOP 是一款結合社交互動與區塊鏈技術的創新平臺,透過獎勵機制鼓勵安全駕駛,並讓用戶在參與過程中賺取加密貨幣。平臺提供多元的功能,例如安全駕駛獎勵、推薦計畫、社群活動和應用內互動,讓用戶能透過不同的方式累積積分與 $STOP 代幣。
這篇文章提供 VB.NET 變數宣告、常用資料型別、運算子與運算式的教學,包含範例程式碼、型別轉換說明、常見錯誤與解決方法,以及實作題與進階題,適合初學者學習。
Dream to Earn 是一款結合睡眠追蹤與加密貨幣獎勵的 Web3 應用程式,讓使用者透過睡眠賺取 DREAM 代幣。文章探討其運作方式、潛在風險以及持續發展的可能性,並提供加入方式與邀請碼。
本文介紹XSS (跨站腳本攻擊) 的原理、ASP.NET Web Forms 應用程式中常見的漏洞、測試範例以及如何使用Server.HtmlEncode()函式來防止XSS攻擊。透過適當的輸入驗證和編碼,可以有效降低XSS攻擊風險,提升網站安全性。
這篇文章提供一個逐步指南,教導讀者如何使用VB.Net和ASP.NET Web Forms建立一個簡單的Web應用程式。從安裝開發環境到撰寫程式碼、執行與測試,步驟清晰易懂,適合初學者學習。
產前基因檢測已成為許多準父母關注的焦點,本文詳細說明染色體異常檢測(如NIPT、CMA)和單基因遺傳病檢測的差異、優缺點、以及不同風險族群的建議檢測方案,幫助準父母們更瞭解產前基因檢測,做出更適合自己的選擇。
LETSTOP 是一款結合社交互動與區塊鏈技術的創新平臺,透過獎勵機制鼓勵安全駕駛,並讓用戶在參與過程中賺取加密貨幣。平臺提供多元的功能,例如安全駕駛獎勵、推薦計畫、社群活動和應用內互動,讓用戶能透過不同的方式累積積分與 $STOP 代幣。
這篇文章提供 VB.NET 變數宣告、常用資料型別、運算子與運算式的教學,包含範例程式碼、型別轉換說明、常見錯誤與解決方法,以及實作題與進階題,適合初學者學習。
Dream to Earn 是一款結合睡眠追蹤與加密貨幣獎勵的 Web3 應用程式,讓使用者透過睡眠賺取 DREAM 代幣。文章探討其運作方式、潛在風險以及持續發展的可能性,並提供加入方式與邀請碼。
本文介紹XSS (跨站腳本攻擊) 的原理、ASP.NET Web Forms 應用程式中常見的漏洞、測試範例以及如何使用Server.HtmlEncode()函式來防止XSS攻擊。透過適當的輸入驗證和編碼,可以有效降低XSS攻擊風險,提升網站安全性。
這篇文章提供一個逐步指南,教導讀者如何使用VB.Net和ASP.NET Web Forms建立一個簡單的Web應用程式。從安裝開發環境到撰寫程式碼、執行與測試,步驟清晰易懂,適合初學者學習。
產前基因檢測已成為許多準父母關注的焦點,本文詳細說明染色體異常檢測(如NIPT、CMA)和單基因遺傳病檢測的差異、優缺點、以及不同風險族群的建議檢測方案,幫助準父母們更瞭解產前基因檢測,做出更適合自己的選擇。
本篇參與的主題活動
這幾天看到有落淚挑戰所以就來分享一下從小到大落淚的原因
各位彩妝控、眼影收藏家們!是不是覺得眼妝是整個妝容的靈魂?一盤對的眼影盤,就能讓你輕鬆變換風格,從溫柔日常、氣質通勤到閃亮派對,通通搞定!看著那一格格美麗的顏色,排列組合出無限可能,就是讓人忍不住一盤接一盤地收啊!
## 第一季活動時間提醒 🗓️ 2025/3/28 15:00 - 4/27 14:59 ## 段位系統說明 ### 不會降級的段位 🔒 - 新手級 1-4 - 精靈球級 1-4 - 超級球級 1 ### 會降級的段位變動規則 📊 **超級球段位**
這幾天看到有落淚挑戰所以就來分享一下從小到大落淚的原因
各位彩妝控、眼影收藏家們!是不是覺得眼妝是整個妝容的靈魂?一盤對的眼影盤,就能讓你輕鬆變換風格,從溫柔日常、氣質通勤到閃亮派對,通通搞定!看著那一格格美麗的顏色,排列組合出無限可能,就是讓人忍不住一盤接一盤地收啊!
## 第一季活動時間提醒 🗓️ 2025/3/28 15:00 - 4/27 14:59 ## 段位系統說明 ### 不會降級的段位 🔒 - 新手級 1-4 - 精靈球級 1-4 - 超級球級 1 ### 會降級的段位變動規則 📊 **超級球段位**
你可能也想看
Google News 追蹤
Thumbnail
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
Thumbnail
本篇文章將教你如何在Kubernetes cluster內部署一個MongoDB,包括取得Manifests、建立Volume、部署實務、基本操作和結論。透過操作演示,讓你瞭解在實務上如何成功建立MongoDB,並進行基本操作。
Thumbnail
本文將探討Kubernetes內部DNS解析的相關流程,並介紹如何利用DNS來找到服務。透過瞭解DNS的工作原理,可以讓應用服務的問題處理更有效率,並提供基本測試與結論。
Thumbnail
本篇說明如何利用Kubernetes特色,將PostgreSQL DB以HA的架構來提供服務,並說明相關的實作流程與說明。
Thumbnail
引言 在當今的技術世界中,Kubernetes 已成為容器化應用的領導平台。作為一個高效的容器編排系統,它不僅管理著容器的部署和擴展,還提供了必要的自動化支持,以保證應用的高可用性和性能。在這個框架中,自動擴展功能起著至關重要的作用,特別是在面對不斷變化的負載和需求時。
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
這篇文章將提供一個完整的Kubernetes安裝指南,包括控制平面節點和工作節點的安裝過程。文章中還會提及一些參考資料和解決常見錯誤的方法。
Thumbnail
安裝環境需求 64位元Linux,核心版本為3.1以上,且能滿足Ducker安裝環境。 機器之間要能夠互通。 外部存取權限。 硬體資源:兩核心CPU、8G記憶體、硬碟30GB以上。 安裝Kubeadm與Ducker Kubeadm是Kubernetes的一鍵部署工具。 增加Kube
Thumbnail
在實際生產中,容器化技術開始走向「容器編排技術」,如:Kubernetes。因為Docker無法獨立支撐大規模容器化部署。 Kubernetes起源於Borg系統,所以在大規模的叢集管理,優於其他容器編排技術。它提供拉取映像檔、拉取執行容器、路由閘道、水平擴充、監控和備份等,除外還可以自動化處理容
Thumbnail
本篇文章將教你如何在Kubernetes cluster內部署一個MongoDB,包括取得Manifests、建立Volume、部署實務、基本操作和結論。透過操作演示,讓你瞭解在實務上如何成功建立MongoDB,並進行基本操作。
Thumbnail
本文將探討Kubernetes內部DNS解析的相關流程,並介紹如何利用DNS來找到服務。透過瞭解DNS的工作原理,可以讓應用服務的問題處理更有效率,並提供基本測試與結論。
Thumbnail
本篇說明如何利用Kubernetes特色,將PostgreSQL DB以HA的架構來提供服務,並說明相關的實作流程與說明。
Thumbnail
引言 在當今的技術世界中,Kubernetes 已成為容器化應用的領導平台。作為一個高效的容器編排系統,它不僅管理著容器的部署和擴展,還提供了必要的自動化支持,以保證應用的高可用性和性能。在這個框架中,自動擴展功能起著至關重要的作用,特別是在面對不斷變化的負載和需求時。
Thumbnail
本文將演示在安裝完 Kubernetes Cluster 後的基本元件安裝,包括 Calico/Calicoctl、Metric Server 和 Dashboard UI 的安裝方法以及相關問題與解決方式。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。