本頁說明如何取得 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 小時通知您。GKE 會在 8 小時 (控制層) 或 10 天 (節點) 的開始時間範圍內,開始升級控制層或節點,升級至下列其中一個版本:
- 通知中顯示的 GKE 版本
- 如果修補程式在升級前,成為叢集發布版本中的自動升級目標,則為同一子版本中的後續修補程式
排定升級通知可讓您確切掌握 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 控制台的「升級」資訊主頁:
這個資訊主頁中的分頁會匯總升級的相關資訊,例如:
- 最近控制層和節點升級的狀態
- 升級叢集的叢集通知記錄
- 升級相關建議
- 特定子版本的支援終止時間表
- 每個發布版本中的叢集數量
在叢集層級取得升級資訊
控制台
前往 Google Cloud 控制台的「Kubernetes clusters」(Kubernetes 叢集) 頁面。
選取叢集名稱,查看「叢集詳細資料」頁面。
在「叢集詳細資料」頁面中,查看「叢集升級」部分。
gcloud
執行下列指令:
gcloud container clusters get-upgrade-info CLUSTER_NAME
將 CLUSTER_NAME 替換為叢集名稱。
取得 Standard 叢集節點集區的升級資訊
您可以查看標準叢集中個別節點集區的狀態。本節不適用於 Autopilot 叢集,因為 GKE 會管理節點,因此您無法管理節點集區。
控制台
前往 Google Cloud 控制台的「Kubernetes clusters」(Kubernetes 叢集) 頁面。
按一下叢集名稱,即可查看詳細資料。
按一下「Nodes」(節點) 分頁標籤。
在「Node Pools」(節點集區) 區段中,按一下要取得升級資訊的節點集區名稱。
在「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 會通知您。詳情請參閱「找出執行子版本且標準支援期已結束的叢集」。
- 在叢集層級取得升級資訊: 找出叢集的子版本支援終止日期。
- 升級資訊主頁 (預覽版):「升級」資訊主頁包含「版本支援終止」部分,其中列出特定版本,以及支援終止前的剩餘天數。