掌握叢集升級作業的最新動態

本頁說明如何取得 Google Kubernetes Engine (GKE) 叢集的升級資訊。GKE 會陸續自動升級所有叢集。GKE 升級叢集時,會分別更新 Kubernetes 控制層和工作站節點的版本。

GKE 會彙整叢集升級資訊,協助您進一步瞭解叢集狀態。您可以取得叢集的下列資訊:

  • 排定升級時間 (搶先版): GKE 會提前至少 72 小時通知您,接著才會自動升級叢集控制層和自動升級叢集節點。 啟用排定升級後,GKE 仍會定期自動升級叢集,但會事先通知您。如果沒有收到預先通知,叢集就不會自動升級。
  • 自動升級目標:找出 GKE 叢集鎖定的新版本,可能是修補程式或新的次要版本,視叢集的現有版本和限制而定。如果沒有自動升級目標,表示叢集已採用最新的升級目標,或是基於技術或業務原因,GKE 尚未指派自動升級目標。您也可以根據 GKE 版本資訊的版本更新 (例如 2024-R33 附註) 中叢集的子版本,擷取一般自動升級目標。
  • 自動升級狀態:GKE 叢集有叢集升級狀態。您可以透過這個狀態進一步瞭解目前的升級作業,以及 GKE 在選擇自動升級叢集時間時考量的限制,包括維護作業排除時段或導致升級作業無法進行的原因等因素。詳情請參閱「叢集自動升級狀態」。
  • 升級記錄:GKE 會提供叢集近期控制層和節點升級的快照,包括自動和手動升級。如果是最近的控制層和節點升級作業,您可以查看下列詳細資料:

    • 版本:初始版本和目標版本。
    • 狀態:升級作業是否仍在執行中,或是否成功、失敗或已取消。
    • 時間:開始和結束時間。
    • 啟動類型:升級是自動還是手動觸發。
  • 支援終止日期:GKE 最多支援子版本 24 個月。詳情請參閱 GKE 子版本生命週期。如要查看所有目前子版本的支援終止日期,請參閱「預估發布管道時間表」。

  • 叢集事件:GKE 會在發生特定事件時,將叢集通知傳送至 Cloud Logging,例如升級開始或完成、有新版本可用、安全性公告,以及支援終止日期。除了 GKE 會透過 Cloud Logging 自動顯示這些事件,您也可以將這些通知傳送至 Pub/Sub。詳情請參閱「叢集通知」。

事前準備

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

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

接收排定叢集升級作業的通知

您可以啟用 GKE 的排定升級功能,提前收到下列類型的叢集自動升級通知:

啟用這項選擇加入功能後,GKE 會將叢集通知發布至 Cloud Logging,或選擇發布至 Pub/Sub,通知您下列事項:

  • 叢集名稱。
  • 升級期間的開始時間。控制層為 8 小時,節點則為 10 天。
  • 目標版本。
  • 受影響的節點集區 (適用於節點升級):每則通知都適用於單一自動升級目標,並列出最多 10 個排定升級的節點集區。請注意,所有共用這個自動升級目標的節點集區都會升級,不只是列出的節點集區。如要確認特定節點集區是否受到影響,請取得節點集區的升級資訊,確認自動升級目標與通知中的目標相符。

GKE 會在開始時間前 72 到 96 小時通知您。在 8 小時 (控制層) 或 10 天 (節點) 的開始時間範圍內,GKE 會開始將控制層或節點升級至下列其中一個版本:

  • 通知中顯示的 GKE 版本
  • 如果修補程式在升級前,成為叢集發布管道中的自動升級目標,則為同一子版本的後續修補程式

排定升級通知可讓您確切掌握 GKE 何時會開始升級控制層或節點集區。不過,這項通知無法保證 GKE 會在您指定的時間升級叢集。此外,通知只會告知升級開始時間,不保證升級是否完成。

如果啟用這項功能,且叢集中的節點數量眾多,建議您同時設定節點集區並行升級,以便在叢集環境可接受的時間內完成節點升級。

如果未啟用這項功能,GKE 仍會自動升級叢集控制層。不過,如果沒有這項功能,您不會事先收到排定升級的通知。

請參閱下列各節,瞭解收到排定升級通知時可以或無法執行的動作,以及 GKE 可能不會在指定時間升級叢集的原因。

收到排定升級通知時的處理方式

如果已準備好在通知中指定的時間進行排定的升級,您不必採取任何進一步行動,只要在 GKE 啟動自動升級時,監控叢集環境和工作負載的健康狀態即可。

或者,您也可以採取下列動作,這會影響升級時間:

GKE 可能無法執行排定升級的原因

如果在通知傳送後到排定升級開始時間之間,發現版本有問題,GKE 可能不會在指定時間範圍內執行排定升級。詳情請參閱「找出阻礙叢集下次升級的因素」。

如果是節點升級,GKE 會傳送通知,彙整所有具有相同自動升級目標的節點集區,但 GKE 可能無法在 10 天時間範圍結束前啟動所有升級。如果叢集有多個節點集區,或節點集區升級時間較長 (例如節點數量眾多的大型節點集區),就更有可能發生這種情況。對於節點升級可能需要較長時間才能完成的叢集,建議您設定並行節點集區升級,讓 GKE 可以在 10 天內同時升級多個節點集區。

如果 GKE 因您的動作、時間限制或其他無法預料的情況而取消或無法執行排定的升級作業,GKE 會在重新排定升級作業時,傳送另一則叢集通知。

限制

  • 您無法透過推出順序啟用排定的升級作業。
  • GKE 不會傳送取消排定升級作業的通知。GKE 只會在排定新升級時間時傳送通知。
  • 如果啟用排定的升級時間,自動升級的完成速度可能會比未啟用通知時慢。這是因為每次升級時,GKE 都必須提前至少 72 小時通知您,並遵守開始時間範圍和維護時間範圍 (如果已為叢集設定維護時間範圍)。如要以最高效率在叢集中進行升級,尤其是節點集區數量眾多或節點集區規模龐大時,我們也建議設定並行升級節點集區。此外,您也可以視需要使用手動升級功能,提前升級。
  • 如果叢集有超過 1,000 個節點集區,請勿啟用排定升級。
  • GKE 只會提前通知您版本升級 (包括控制層和節點升級),不會通知其他類型的節點更新。如要進一步瞭解升級 (版本更新) 與其他類型更新的差異,請參閱「管理叢集生命週期變更,盡量減少中斷」。
  • 您無法使用 Terraform 啟用或停用排定升級。
  • 排定升級通知僅能確保系統不會在未事先通知的情況下,自動升級叢集控制層或節點。不過,通知無法保證下列事項:

    • 升級作業不一定會在確切時間開始,控制層升級作業的開始時間只會在 8 小時內,節點升級作業的開始時間則會在 10 天內。
    • GKE 不保證會在該時間範圍內開始升級。詳情請參閱「GKE 可能不會執行排定升級作業的原因」。
    • 如果發布管道中有相同子版本的後續修補程式自動升級目標,GKE 不保證會自動將控制層或節點集區升級至確切的修補程式版本。

啟用排定的升級作業

啟用排定的升級作業,並將 CLUSTER_NAME 替換為叢集名稱:

gcloud beta container clusters update CLUSTER_NAME
   --enable-scheduled-upgrades

啟用排定升級時間後,您可以使用 Cloud Logging 查看通知,或透過 Pub/Sub 設定通知。詳情請參閱「叢集通知」。

此外,如果叢集中的節點數量眾多,我們也建議您設定節點集區並行升級,以便在叢集環境可接受的時間內完成節點升級。

收到排定升級通知時,請參閱「收到排定升級通知時的因應措施」。

停用排定的升級作業

停用排定的升級作業,並將 CLUSTER_NAME 替換為叢集名稱:

gcloud beta container clusters update CLUSTER_NAME
   --disable-scheduled-upgrades

停用這項功能後,GKE 不會再通知您有關排定升級的資訊。

取得叢集升級資訊

您可以使用Google Cloud 控制台或 gcloud CLI,主動取得叢集升級的相關資訊。

取得專案層級的升級資訊

如要取得專案中叢集升級的匯總資訊,可以使用「升級」資訊主頁。

前往 Google Cloud 控制台的「升級」資訊主頁:

前往「升級」頁面

這個資訊主頁中的分頁會匯總升級的相關資訊,例如:

  • 近期控制層和節點升級的狀態
  • 升級叢集的叢集通知記錄
  • 升級相關建議
  • 特定子版本的支援終止時間表
  • 每個發布管道中的叢集數量

取得叢集層級的升級資訊

控制台

  1. 前往 Google Cloud 控制台的「Kubernetes clusters」(Kubernetes 叢集) 頁面。

    前往 Kubernetes 叢集

  2. 選取叢集名稱,即可查看「叢集詳細資料」頁面。

  3. 在「叢集詳細資料」頁面中,查看「叢集升級」部分。

gcloud

執行下列指令:

gcloud container clusters get-upgrade-info CLUSTER_NAME

將 CLUSTER_NAME 替換為叢集名稱。

取得 Standard 叢集節點集區的升級資訊

您可以查看標準叢集中個別節點集區的狀態。本節不適用於 Autopilot 叢集,因為 GKE 會管理節點,因此您無法管理節點集區。

控制台

  1. 前往 Google Cloud 控制台的「Kubernetes clusters」(Kubernetes 叢集) 頁面。

    前往 Kubernetes 叢集

  2. 按一下叢集名稱,即可查看詳細資料。

  3. 按一下「Nodes」(節點) 分頁標籤。

  4. 在「Node Pools」(節點集區) 區段中,按一下要取得升級資訊的節點集區名稱。

  5. 在「Node pool details」(節點集區詳細資料) 頁面中,查看「Upgrades」(升級) 區段。

gcloud

執行下列指令:

gcloud container node-pools get-upgrade-info POOL_NAME
    --cluster=CLUSTER_NAME

將 POOL_NAME 替換為節點集區名稱。

叢集自動升級狀態

叢集的自動升級功能可能處於下列狀態:

  • ACTIVE:有效的升級狀態。
  • UNKNOWN:升級狀態不明。
  • MINOR_UPGRADE_PAUSED:已暫停子版本升級作業。
  • UPGRADE_PAUSED:所有自動升級作業都會暫停。

以下是 GKE 暫停叢集自動升級功能的可能原因:

  • MAINTENANCE_WINDOW:維護期間會阻止叢集升級。
  • MAINTENANCE_EXCLUSION_:如果暫停原因有這個前置字串,表示維護作業排除時段會阻止叢集升級。後置字元表示維護作業排除時段的範圍,例如 MAINTENANCE_EXCLUSION_NO_UPGRADES。
  • CLUSTER_DISRUPTION_BUDGET:在叢集建立或升級等作業後,需要經過一段等待期,確保叢集及其應用程式的穩定性和可用性。
  • CLUSTER_DISRUPTION_BUDGET_MINOR_UPGRADE:叢集超出子版本升級的叢集服務中斷預算。
  • SYSTEM_CONFIG:基於技術或業務原因,自動升級作業已暫時暫停。如果狀態為「需要手動升級」,建議您不要手動升級,除非是必要程序。
  • AUTO_UPGRADE_PAUSED_REASON_UNSPECIFIED:原因不明。

瞭解叢集升級的常見情境

瞭解管理叢集升級時可能遇到的常見情境。

瞭解叢集下次升級的預計時間

如要瞭解叢集下次升級的預計時間,以便規劃及進行新版本的升級資格評估,請參閱下列資源:

  • 發布時間表:在「發布管道預估時間表」中,找出與叢集子版本和發布管道對應的預估自動升級日期。
  • 在叢集層級取得升級資訊:找出叢集的自動升級目標。
  • 叢集通知:當管道有新版本時,GKE 會傳送通知。新版本推出後 (時間取決於管道),GKE 會將該版本指定為管道中的自動升級目標。如要查看這些通知,請在 Cloud Logging 中查看叢集通知時,篩選 UpgradeAvailableEvent。
  • 發布說明:請參閱發布說明,瞭解 GKE 何時會將新子版本設為管道中的自動升級目標。

找出阻礙叢集下次升級的原因

如要瞭解升級作業遭到封鎖的原因,以便解除封鎖,請找出叢集的自動升級狀態。如果自動升級作業已暫停,請查看原因。請使用下列其中一種方法:

瞭解叢集升級完成時間

如要瞭解叢集控制層和節點升級完成的時間,以便確認工作負載是否正常運作,請使用下列資源:

  • 叢集通知:GKE 完成叢集升級作業時,會傳送通知。如要查看這些通知,請在 Cloud Logging 中查看叢集通知時,篩選 UpgradeInfoEvent。
  • 升級資訊主頁 (預覽版):前往Google Cloud 控制台的「升級狀態」表格。找出叢集。如果「狀態」欄顯示「已升級」,請查看「最新更新」欄,瞭解升級完成時間。
  • 取得叢集層級的升級資訊:使用 gcloud CLI 找出叢集的升級記錄,包括最近的升級。

瞭解升級作業預計所需時間

如要瞭解預計升級時間,請在叢集層級取得升級資訊,即可查看過去的升級時間。如需近期範例,請參閱升級記錄。

升級時間長度取決於升級的是控制層或節點、升級策略、Pod 中斷預算 (PDB)、有效維護政策和其他因素。

瞭解叢集子版本的支援終止時間

如果叢集仍執行支援期限已過的子版本,GKE 會自動升級叢集。詳情請參閱「支援終止後的自動升級作業」。

如要瞭解叢集的次要版本何時會終止支援,例如設定維護排除項目,或瞭解何時無法再使用已淘汰的 API,請參閱下列資源:

  • 發布時間表:在「發布管道的預估發布時間表」中,找出與叢集子版本和發布管道對應的支援結束日期。如果叢集不在延長版通道中,請參閱標準支援服務終止日期。如為延長版管道中的叢集,請參閱延長支援服務結束日期。
  • 叢集通知:如果叢集執行的子版本即將結束支援,GKE 會傳送通知。如要查看這些通知,請在 Cloud Logging 中查看叢集通知時,篩選 UpgradeInfoEvent。
  • 洞察和最佳化建議:如果叢集執行的子版本已不在標準支援服務範圍內,GKE 會通知您。詳情請參閱「找出執行子版本且已過標準支援期限的叢集」。
  • 在叢集層級取得升級資訊: 找出叢集的子版本支援終止日期。
  • 升級資訊主頁 (搶先版):升級資訊主頁包含「版本支援終止」部分,其中列出特定版本,以及支援終止前的剩餘天數。

後續步驟