Autopilot 叢集升級


本頁面說明 Google Kubernetes Engine (GKE) Autopilot 叢集的自動升級作業,並提供相關工作和設定的詳細資訊連結。您可以根據這項資訊更新叢集,確保穩定性和安全性,同時盡量減少工作負載中斷情形。

如需叢集升級的一般總覽,請參閱「關於 GKE 叢集升級」。如要瞭解 Standard 叢集的升級方式,請參閱Standard 叢集升級

自動升級控制層和節點

所有 Autopilot 叢集都已啟用自動升級功能。 當 選取 GKE 版本進行自動升級時,GKE 會啟動自動升級程序,觀察所有叢集的自動升級情形,並在發生節點健康狀態不良等問題時介入處理。您無法停用自動升級功能,但可以透過維護期間和排除時段控管升級時間。

如要升級叢集,GKE 會更新控制層和節點執行的版本。叢集會升級至較新的次要版本 (例如從 1.24 升級至 1.25),或是較新的修補程式版本 (例如從 1.24.2-gke.100 升級至 1.24.5-gke.200)。詳情請參閱「GKE 版本管理和支援服務」。

所有 Autopilot 叢集都會註冊發布版本,因此 GKE 會自動升級控制層和節點,以執行相同的 GKE 版本。

GKE 會先升級叢集的控制層,再升級節點

自動升級控制層

所有 Autopilot 叢集都是地區叢集。區域叢集具有多個控制層副本,但一次只會升級一個副本,升級順序不一定。這可確保叢集在自動升級期間維持高可用性。升級期間,每個控制層副本都只會暫時無法使用。

如果您設定維護期間或排除時段,GKE 會盡可能遵守設定。

控制層升級期間,GKE 無法建立新節點。如果控制層升級期間,您部署的 Pod 需要新的節點類型,可能要等到控制層升級完成後,才能順利部署 Pod。

自動節點升級功能

GKE 升級 Autopilot 叢集控制層後,會將節點升級至相同 GKE 版本。

在 Autopilot 中,GKE 會將具有類似特徵的節點歸類為一組。GKE 會對 Autopilot 節點使用節點數擴充升級,一次升級群組中最多 20 個節點。為確保節點和工作負載持續維持高可用性,同時升級的節點確切數量會有所不同。

視節點數量和節點中執行的工作負載設定而定,節點升級作業可能需要數小時。舉例來說,下列設定可能會導致升級時間變長:

如果您設定維護期間或排除時段,GKE 會盡可能遵守設定。

GKE 升級節點時,會執行下列步驟:

  1. GKE 會建立新的突增節點,並使用新的 GKE 版本,然後等待突增節點向控制層註冊。
  2. GKE 會選取現有節點 (即目標節點) 進行升級。
  3. GKE 會封鎖目標節點,防止新 Pod 放置在目標節點上。
  4. GKE 會排空目標節點,將現有 Pod 從目標節點中移除。
  5. GKE 會將工作負載控制器代管的 Pod 重新排程到其他可用節點。無法重新排程的 Pod 會維持 PENDING 狀態,直到 GKE 可以重新排程為止。

  6. GKE 會刪除目標節點。

如果自動升級至特定 GKE 版本後,整個 GKE 機群中出現大量健康狀態不良的節點,GKE 會停止升級至該版本,並調查問題。

如何選取自動升級的版本

GKE 會定期發布新的次要版本,但發布的版本不會立即選取為自動升級版本。如要成為自動升級目標,GKE 版本必須累積足夠的使用量,才能證明長期穩定性。

Google Cloud 然後將該版本選為叢集的自動升級目標,這些叢集會執行特定舊版 GKE 版本子集。舉例來說,新次要版本推出後不久,最舊的次要版本通常就會停止支援。如果叢集執行的子版本不受支援,GKE 會將叢集升級至自動升級目標版本。

GKE 會在發布說明中公布新的自動升級目標版本。有時,系統會在不同週選取版本,分別用於控制層自動升級和節點自動升級。GKE 會自動升級至次要版本 (例如 v1.21.x) 中的新修補程式版本。如要取得特定叢集的自動升級目標,請參閱「取得叢集升級相關資訊」。

如要瞭解版本生命週期和版本管理機制,請參閱「GKE 版本管理和支援服務」。

影響版本推出時間的因素

為確保新版叢集的穩定性和可靠性,GKE 會在推出新版本時遵循特定做法。

這類做法包括但不限於:

  • GKE 會逐步在各個 Google Cloud地區和可用區推出變更。
  • GKE 會透過發布版本,逐步推出修補程式版本。修補程式會在「快速版」發布管道中經過一段時間的測試,然後在「一般版」發布管道中經過一段時間的測試,累積使用量並持續展現穩定性後,才會升級至「穩定版」發布管道。如果在發布管道的浸泡期間發現修補程式版本有問題,該版本就不會升級至下一個管道,且問題會在較新的修補程式版本中修正。
  • GKE 會逐步推出子版本,並採用與修補程式版本類似的浸泡程序。次要版本會導入更重大的變更,因此浸泡期較長。
  • 如果新版本會影響一組叢集,GKE 可能會延後自動升級。舉例來說,如果 GKE 偵測到叢集使用已淘汰的 API 或功能,且這些項目會在下一個子版本中移除,就會暫停叢集的自動升級作業
  • 為確保業務持續運作,GKE 可能會在尖峰時段 (例如重大節慶) 延後推出新版本。

設定自動升級的發生時間

根據預設,系統隨時可以自動升級。自動升級作業造成的干擾極小,尤其對 Autopilot 叢集而言更是如此。不過,部分工作負載可能需要更精細的控制。您可以設定維護期間和排除項目,管理自動升級作業的執行時間。

如果您設定維護期間和排除時段,系統會在目前時間位於維護期間內時,才會執行升級作業。如果升級作業在維護期間結束前尚未完成,GKE 會嘗試暫停升級作業。GKE 會在下一個可用維護期間繼續升級。

手動升級 Autopilot 叢集

您可以手動升級 Autopilot 叢集控制層的 GKE 版本。GKE 會盡快自動升級節點,使其與控制層版本相符,但須視維護作業的可用性而定。如需操作說明,請參閱「手動升級控制層」。您無法手動管理 Autopilot 叢集的節點版本。

您可以將控制層版本升級至相同發布版本中支援的次要版本或修補程式版本,也可以升級至不同發布版本中與叢集相同的次要版本修補程式版本。

舉例來說,假設 Autopilot 叢集在 Regular 發布管道中執行 GKE 1.22.8-gke.202 版,適用下列行為:

  • 您可以升級至 Regular 中的任何版本。
  • 您可以在「快速」管道中升級至 1.22 的任何修補程式版本。

如要進一步瞭解如何升級至其他管道,請參閱「從較新的管道執行修補程式版本」。

節點數擴充升級

Autopilot 叢集會使用節點數擴充升級,同時升級多個節點。節點數擴充升級功能可讓 GKE 維持足夠的運算容量,確保執行中的工作負載不受影響,進而減少版本升級作業造成的中斷。Autopilot 會管理升級期間新增至叢集的突增節點數量。這個數字會根據叢集的總大小而有所不同。 GKE 也會管理升級期間可同時無法使用的目標節點總數。

系統會視情況調整新湧現節點和無法使用的目標節點數量,確保叢集一律有足夠的運算容量,可處理所有執行中的工作負載。升級期間,GKE 會將工作負載從目標節點遷移至擴充節點,因此可能會發生輕微中斷。

如要瞭解升級期間的節點數量變化,請參閱「自動升級節點」一文。

節點數擴充升級的配額規定

與節點重建不同,擴充升級需要額外的 Compute Engine 資源。資源分配取決於可用的 Compute Engine 配額。視設定而定,這項配額可能會限制平行升級的數量,甚至導致升級失敗。為避免發生擴充問題,並確保升級作業更具可預測性,建議您確保 Compute Engine 執行個體配額不超過 90%。

如要進一步瞭解配額,請參閱「確保節點升級的資源」。

接收升級通知

GKE 會將升級通知發布至 Pub/Sub,您可以透過這個管道接收 GKE 發送的叢集相關資訊。

詳情請參閱「接收叢集通知」。

元件升級

GKE 會在工作站節點上執行系統工作負載,以支援叢集的特定功能。舉例來說,gke-metadata-server 系統工作負載支援 Workload Identity Federation for GKE。GKE 會負責這些工作負載的健康狀態。如要進一步瞭解這些元件,請參閱相關功能的說明文件。

如果元件推出新功能或修正內容,GKE 會指出包含這些項目的修補程式版本。如要取得元件的最新版本,請參閱相關說明文件或版本說明,瞭解如何將控制層或節點升級至適當版本。

後續步驟