輪替憑證授權單位

Google Distributed Cloud 會使用憑證和私密金鑰,驗證及加密叢集內系統元件之間的連線。叢集憑證授權單位 (CA) 會管理這些憑證和金鑰。執行 bmctl update credentials certificate-authorities rotate 指令時,Google Distributed Cloud 會執行下列動作:

  • 這項指令會建立並上傳新的叢集憑證授權單位 (CA),包括叢集 CA、etcd CA 和前端 Proxy CA,至管理員叢集中的使用者叢集命名空間。

  • 管理員叢集控制器會將使用者叢集憑證授權單位替換為新產生的憑證授權單位。

  • 管理員叢集控制器會將新的公開 CA 憑證和葉子憑證金鑰組,發布至使用者叢集系統元件。

  • 這個指令也會更新 stackdriver-prometheus-etcd-scrape Secret,這是 Google Distributed Cloud 在建立叢集時建立的。Prometheus 需要這個密鑰才能收集 etcd 指標。

為確保叢集通訊安全,請定期輪替使用者叢集 CA,並在發生可能的安全漏洞時進行輪替。

事前準備

輪替叢集的憑證授權單位前,請根據下列條件和影響進行規劃:

  • 請先確認管理員和使用者叢集版本為 1.9.0 以上,再開始執行 CA 輪替。

  • CA 輪替是遞增的,因此系統元件在輪替期間可以通訊。

  • CA 輪替會多次重新啟動 API 伺服器、其他控制層程序,以及叢集中的每個節點。叢集根憑證授權單位輪替的每個階段,都與叢集升級的進度類似。雖然使用者叢集在 CA 輪替期間仍可運作,但您應預期工作負載會重新啟動並重新排程。

  • 如果使用者叢集沒有高可用性控制層,請預期在 CA 輪替期間,控制層會短暫停機。

  • CA 輪替期間,系統不允許叢集管理作業。

  • CA 輪替時間長度取決於叢集大小。舉例來說,如果叢集有一個控制層和 50 個工作站節點,CA 輪替作業可能需要將近兩小時才能完成。

限制

憑證授權單位輪替功能有下列限制:

  • 即使叢集 CA 簽署憑證,CA 輪替也不會更新管理員手動核發的憑證。使用者叢集 CA 輪替完成後,請更新並重新發布所有手動核發的憑證。

  • 啟動 CA 輪替後,就無法暫停或復原。

啟動叢集 CA 輪替

根據預設,傳輸層安全標準 (TLS) 憑證的效期為 1 年。 輪替憑證授權單位時,Google Distributed Cloud 會更新這些憑證。Google Distributed Cloud 也會在叢集升級期間更新 TLS 憑證。建議您定期升級叢集,確保叢集安全無虞、受到支援,並防止傳輸層安全標準 (TLS) 憑證過期。

使用下列指令啟動 CA 輪替程序:

bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
    --kubeconfig KUBECONFIG

更改下列內容:

  • CLUSTER_NAME:要輪替 CA 的叢集名稱。
  • KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。如果是自行管理的叢集,這個檔案就是叢集的 kubeconfig 檔案。

成功輪替 CA 並產生新的 kubeconfig 檔案後,bmctl 指令就會結束。kubeconfig 檔案的標準路徑為 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig

排解叢集 CA 輪替問題

bmctl update credentials 指令會顯示 CA 輪替進度。 相關聯的 update-credentials.log 檔案會儲存至下列以時間戳記命名的目錄:

bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP