控制自動升級造成的干擾頻率

本文將介紹叢集中斷預算的概念,並說明如何視需要自訂叢集,以符合環境需求。叢集干擾預算是功能套件中的一項工具,可協助平台管理員盡量減少工作負載的干擾,同時提升工作負載的效能、穩定性和安全性。

叢集升級 (也就是 GKE 更新叢集控制層和節點使用的版本) 可能是 GKE 叢集的主要中斷來源。如要進一步瞭解升級,請參閱「關於 GKE 叢集升級」。如要瞭解所有其他功能,盡量減少叢集升級期間的中斷情形,請參閱該文件的「控制叢集升級」一節。如要進一步瞭解叢集生命週期變更 (不只是叢集升級),請參閱「管理叢集生命週期變更,盡量減少中斷」。

什麼是叢集服務中斷預算

為確保叢集不會過於頻繁地受到自動升級作業影響,GKE 預設會套用叢集服務中斷預算,設定自動叢集控制層升級的間隔時間下限。GKE 也會在叢集建立後到第一次自動控制層升級前,套用這項預算。此外,如果您手動升級叢集控制層,GKE 會在下次自動升級時遵守叢集干擾預算。即使升級作業違反叢集服務中斷預算,您還是可以隨時手動升級叢集。

在叢集中,GKE 會先自動升級控制層,再升級節點。因此,這項預算也會設定自動升級叢集節點的最低頻率。

GKE 針對不同類型的版本升級,設有預設的叢集中斷預算:

  • 修補程式版本升級:24 小時
  • 次要版本升級:30 天

GKE 會在相同類型的升級之間套用預算。舉例來說,在將叢集從修補程式版本 1.35.0-gke.1403000 升級至 1.35.0-gke.1624000 時,GKE 會等待 24 小時,而從 1.34 升級至 1.35 時,則會等待 30 天。不過,GKE 會在次要升級後等待 24 小時,再執行修補程式升級。

GKE 只會在叢集升級時使用叢集服務中斷預算,不會用於其他類型的 GKE 叢集變更

叢集服務中斷預算與維護期間和排除時段不同,但可搭配使用。維護政策可控管 GKE 叢集維護作業的執行時間,而叢集服務中斷預算則可設定叢集升級作業之間的時間間隔。

何時該自訂叢集的中斷預算

GKE 的預設叢集中斷預算可兼顧升級作業的及時性,同時避免連續升級,並盡量提高穩定性。不過,這些一般值可能不適合您的叢集環境。

如要控管自動叢集升級間隔時間下限,可以設定叢集干擾預算。舉例來說,請參考下列情境:

  • 您有自訂程序,可在將 GKE 控制層修補程式版本推送至正式環境前進行評估,而這個程序需要特定時間,超過預設叢集預算。
  • 您有大型叢集,升級所有節點集區需要較長時間。您希望這些節點集區的版本維持相對一致。因此,您降低修補程式升級頻率,每月升級一次,同時允許頻繁的維護時段,確保節點集區升級作業及時完成。

設定自動升級的叢集 disruption budget

如要控制兩次次要升級或兩次修補程式升級之間的時間間隔,可以自行設定叢集停機預算。不過,我們建議您先設定維護時間範圍,為 GKE 叢集維護作業設定定期時間。然後,您可以選擇使用叢集干擾預算,自訂升級間隔。

建議您搭配使用叢集中斷預算和 GKE 提供的其他可用工具,控管叢集升級作業。這些設定適用於所有其他升級工具,只會影響 GKE 自動將叢集升級至新版本時的時機。GKE 仍會遵守維護期間和排除時段,並按照推出作業順序進行,以及套用通常用於自動升級的其他標準做法。

修補程式升級作業的預設叢集服務中斷預算為 24 小時,子版本升級作業則為 30 天。您可以將間隔設為 0 到 90 天之間的任何時間長度。不過,更新這些值時,請注意下列事項:

  • 除非您有特定的版本資格程序,且所需時間超過 30 天,否則建議您不要將修補程式升級間隔設為超過 30 天。如果升級頻率低於 30 天,您可能會錯過重要修補程式。
  • 建議您盡可能頻繁地進行次要升級,以符合叢集環境的需求。如果將子版本升級間隔設為最長 90 天,GKE 就更有可能在子版本支援期限結束時,強制升級叢集。如果子版本支援期限即將結束,GKE 會遵守 7 天的叢集干擾預算,進行子版本升級,且不會遵守您設定的任何叢集干擾預算。詳情請參閱「支援終止後的自動升級作業」。
  • 建議您將修補程式升級間隔設為比次要升級間隔短的時間。

事前準備

開始之前,請務必先完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update 指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。

設定叢集中斷預算

首先,如果尚未設定維護時段,建議您設定維護時段

接著,如要設定自訂叢集中斷預算,請在使用 gcloud CLI 建立或更新叢集時,使用下列旗標:

  • 次要升級--maintenance-minor-version-disruption-interval=MINOR_INTERVAL
  • 修補程式升級--maintenance-patch-version-disruption-interval=PATCH_INTERVAL

對於這些標記,請分別將 MINOR_INTERVALPATCH_INTERVAL 替換為以秒為單位的時間長度,範圍介於 0 天 (0s) 和 90 天 (7776000s) 之間。

您可以在下列情況使用這些標記:

您可以同時或個別使用這些標記。

將叢集干擾預算重設為預設值

如要將叢集 disruption budget 重設為預設值,也就是修補程式升級作業為 24 小時,子版本升級作業為 30 天,請使用下列旗標:

  • 次要升級--clear-maintenance-minor-version-disruption-interval
  • 修補程式升級--clear-maintenance-patch-version-disruption-interval

使用 gcloud container cluster update 指令更新叢集時,請使用這些旗標。

您可以同時或個別使用這些標記。