本頁面說明 Google Kubernetes Engine (GKE) 的版本管理,以及版本支援政策。隨著時間推移,GKE 會將叢集升級至較新的 Kubernetes 版本。如要進一步瞭解升級作業的運作方式,請參閱「關於 GKE 叢集升級」。
如要查看目前版本的推出和支援時間表,請參閱 GKE 發布時間表。
次要版本支援
GKE 支援的 Kubernetes 子版本是以 Kubernetes 開放原始碼政策為依據。為在生命週期內支援可用的次要版本,GKE 提供修補程式版本,並定期自動升級叢集,套用這些較新的修補程式。如要瞭解 GKE 如何支援修補程式版本,請參閱「修補程式版本支援」。
除了支援可用的子版本,GKE 也會在 Kubernetes 發布週期中,提供Alpha 版修補程式,最晚會在下一個子版本推出前四個月提供,讓搶鮮版叢集搶先使用。這些 Alpha 版僅適用於搶鮮版 GKE Alpha 叢集,供搶先採用者試用即將推出的功能。
Kubernetes 如何支援子版本
Kubernetes 開放原始碼軟體 (OSS) 社群每年會發布三次子版本,其中包含新功能和強化項目。每個發布週期約為 15 週。
Kubernetes 支援各子版本 14 個月。如果支援的子版本發生重大錯誤和安全漏洞,系統會發布臨時修補程式版本來修正問題。Kubernetes 社群有時會視需要修訂版本支援時間表。詳情請參閱「支援期限」。
GKE 如何支援子版本
在發布新的穩定子版本之前,Kubernetes 專案會發布該子版本的實驗性不穩定修補程式版本。GKE 推出 Alpha 版修補程式,這些版本以搶鮮版通道中的實驗性版本為基礎,僅適用於 GKE Alpha 版叢集。與快速管道中的其他修補程式版本類似,Alpha 版不適用於 GKE 服務等級協議。
Kubernetes 發布新的穩定版子版本後,GKE 會移除該子版本的 Alpha 版,並為搶鮮版管道中的任何叢集提供該子版本的修補程式版本。由於搶鮮版提供最新的 GKE 修補程式版本,這些版本不適用於 GKE 服務水準協議,且可能包含沒有已知應變措施的問題。
搶鮮版推出新子版本後,GKE 會將其升級至一般版。在一般管道中,子版本可供建立新叢集後,GKE 最多會提供 24 個月的支援。這項支援服務包括約 14 個月的標準支援,以及約 10 個月的延長支援,可透過延長版管道取得。如要查看特定子版本的供應情形,請參閱 GKE 發布時間表。
GKE 子版本生命週期
GKE 次要版本的生命週期包含下列重要步驟:
- 在子版本發布日期前最多四個月,GKE 會在搶鮮版中提供該子版本的 Alpha 版修補程式版本,僅供 Alpha 版叢集使用。
- Kubernetes 發布新的子版本。
- GKE 會在「快速」管道中提供新的子版本,並移除該子版本的所有現有 Alpha 修補程式版本。
- GKE 會在「一般」管道中提供新的子版本 (標準支援期限開始)。
- 在標準支援期限內,GKE 會提供子版本的修補程式,包括新功能、安全性修正和錯誤修正。
- 子版本在標準支援期結束後 (約 14 個月),就會進入延長支援期。之後,GKE 會為擴充管道中的叢集提供安全性修補程式。
- 子版本已終止延長支援服務,因此不會再收到安全性修補程式。
調整版本供應情形
由於 Kubernetes OSS 社群的政策異動、發現安全漏洞,或發生其他無法合理解決的技術問題,GKE 可能會修訂 GKE 版本的支援期限。在黑色星期五和網購星期一等重要業務期間,GKE 也可能會延長支援期限。
GKE 至少提供 14 個月的標準支援,延長支援服務則可將支援期延長至最多 24 個月。
如要取得最新可用版本,請參閱 GKE 版本資訊。GKE 會定期更新發布時間表,反映自動升級的時間。
子版本生命週期中的可用性
GKE 為 Kubernetes 子版本提供下列可用期間:
下表摘要說明適用期間,詳情請參閱下節:
| 適用期間 | 從一般版發布到 Beta 版發布的約略時間 | GKE 提供哪些支援 | 存取這段期間的供應情形 |
|---|---|---|---|
| Alpha 版適用期間 | 第 -5 個月到第 -1 個月 | 在搶鮮版專屬適用期開始前,GKE 會在搶鮮版中推出新的 Alpha 版修補程式版本。Alpha 修補程式版本僅適用於 Alpha 叢集,不提供技術支援或服務水準協議,且極有可能含有問題。在僅限 Alpha 版的可用性期間結束時,如果子版本可供搶鮮版管道中的所有叢集使用,GKE 會從搶鮮版管道中移除所有 Alpha 版。 | 僅限搶鮮版 (需要 Alpha 版叢集) |
| 僅提供 Rapid 的期間 | 第 -1 個月到第 0 個月 | GKE 會提供修補程式版本,其中包含新功能、安全性修正和錯誤修正,讓搶鮮版管道中的所有叢集都能使用子版本。不過,這些版本不適用於 GKE 服務水準協議,且可能包含沒有已知應變措施的問題。GKE 也會從搶鮮版移除該子版本的所有 Alpha 版。 | 僅限搶鮮版 |
| 標準支援期 | 第 1 個月至第 14 個月 | GKE 提供的修補程式版本會包含新功能、安全性修正和錯誤修正。 | 搶鮮版、一般版、穩定版、擴充版、無管道 (已淘汰) |
| 延長支援期限 | 第 15 個月至第 24 個月 | GKE 提供的修補程式版本包含安全性修正。 | 僅限延長版 (每個叢集須額外付費,請參閱「透過延長版取得長期支援」一文) |
Alpha 版的適用期間
GKE 會在即將發布子版本的前四個月,在搶鮮版中發布該子版本的 Alpha 修補程式版本。Alpha 版僅適用於 Alpha 版叢集。 GKE 會在接下來的幾週發布其他 Alpha 修補程式版本,通常會維持一到三個有效的 Alpha 版本。
這段期間會持續到 GKE 在搶鮮版發布穩定子版本為止。穩定版發布後,GKE 會從搶鮮版移除該子版本的所有 Alpha 修補程式版本,因為穩定版修補程式版本已可供安裝。
僅提供 Rapid 的期間
GKE 會先在搶鮮版發布新的子版本。這個版本會先累積用量,並在升級至「一般版」前,展現此管道叢集中的穩定性。只有在搶鮮版管道中註冊的叢集,才能在適用期間執行新的子版本。
這段期間通常為 1 到 2 個月,但確切時間取決於每個子版本。詳情請參閱「發布管道的預估時間表」。
標準支援期
GKE 子版本的標準支援期,從該版本在一般版管道發布時開始算起。無論註冊的發布管道為何,所有 GKE 叢集都能在標準支援服務中執行子版本。在此期間,GKE 會定期自動將叢集升級至新修補程式版本,當中包含新功能、安全性修正和錯誤修正。
GKE 會自動升級叢集,方式如下:
- 快速、一般、穩定、無發布版本 (已淘汰): 自動升級至其他支援的子版本,或相同子版本的修補程式版本。
- 擴充:GKE 只會自動升級至相同子版本的較新修補程式版本。
如果叢集未註冊擴充發布管道,GKE 最終會根據叢集發布管道的排程,在標準支援期結束前,自動將叢集升級至下一個支援的子版本。詳情請參閱「發布管道的預估時間表」。不過,如果叢集使用已淘汰的功能或 API,GKE 就不會在該期間升級叢集。您可以透過維護排除功能,暫時禁止 GKE 將叢集升級至下一個子版本。
標準支援結束日期 (舊稱「產品停產」)
標準支援期限結束後,子版本會達到標準支援終止 (舊稱產品停產) 階段,屆時未註冊延長版管道的叢集將無法使用該版本,且不再享有支援服務。
如果客戶使用的版本即將停止支援,系統會在該版本停止支援前,透過電子郵件通知專案聯絡人。GKE 也會開始逐步自動升級執行不受支援版本的節點 (無論是否啟用自動升級),以確保安全性和相容性,因為支援終止的版本不會再收到新的安全性修補程式或錯誤修正內容。如果叢集或節點執行不支援的版本,請先升級至支援版本,再向 Cloud Customer Care 尋求協助。
如果 GKE 子版本已終止支援,就不會再收到安全性修補程式或錯誤修正。如果子版本已終止支援,該版本的修補程式版本將不受支援,也無法使用。GKE 會自動升級未註冊「延長支援」發布版本的叢集。詳情請參閱「支援終止後的自動升級作業」。
延長支援期
標準支援期結束後,子版本會進入延長支援期 (第 15 個月到第 24 個月)。在此期間,GKE 會提供安全性修正的修補程式,包括下列類型的修正:
- 核心 Kubernetes 元件、節點作業系統和 Google 管理的容器 (與 GKE 叢集版本一併提供) 的中、高和重大安全性修補程式。
- 如果是 Container-Optimized OS,節點作業系統的支援期限可能早於 GKE 子版本的延長支援期限,或導入不相容的變更。如要進一步瞭解 GKE 如何持續提供支援,請參閱「延展支援期限的 Container-Optimized OS 更新」。
在延長支援期即將結束時,GKE 會開始將叢集升級至下一個子版本。如果叢集使用已淘汰的功能或 API,GKE 就不會升級叢集。您可以暫時使用維護排除功能,防止 GKE 將叢集升級至下一個子版本。
延長支援結束日期
延長支援服務結束後,GKE 不會提供任何安全性修正修補程式,子版本也將不受支援。無論叢集是否使用已淘汰的功能或 API,GKE 都會將仍執行不支援子版本的叢集升級為下一個子版本。
支援期結束時自動升級
在子版本終止支援前,GKE 會安排叢集自動升級至下一個支援的子版本。升級時間取決於叢集發布管道的時程。詳情請參閱「發布管道的預估時間表」。舉例來說,與註冊至搶鮮版的叢集相比,註冊至穩定版的叢集會在標準支援服務即將結束時,升級至下一個子版本。
在標準支援期限內,以及註冊延長版頻道的叢集延長支援期限內,您可以透過叢集層級的維護排除項目,或選擇 GKE 在推出程序中執行的升級類型,防止系統升級子版本。此外,如果叢集使用已淘汰的功能或 API,GKE 就不會升級叢集。
不過,如果叢集註冊了「延長」管道,則在標準支援或延長支援結束時,GKE 會自動將叢集升級至下一個支援的子版本,確保叢集維持高效能、可用性和安全性。
每個 GKE 子版本都提供 14 個月的標準支援,以及 24 個月的總支援期 (包括延長支援)。您無法無限期讓叢集維持在子版本,因為使用不受支援的 GKE 子版本運作叢集,會帶來重大的安全性、可靠性和相容性風險,而且 GKE 不會為支援終止的子版本提供安全性修補程式或錯誤修正。支援終止後,GKE 無法保證會為子版本提供修補程式或更新。
GKE 會以以下方式升級叢集:
- 控制層:如果控制層版本無法用於建立新叢集,GKE 會自動將叢集控制層升級至支援的版本。
- 節點:子版本達到支援期限後,GKE 會自動升級執行不受支援子版本的節點,確保叢集健康狀態,並符合 GKE 版本偏差政策。執行不受支援子版本的節點,通常會在支援期結束日後一個月內,排定自動升級至支援的子版本。如果節點執行的子版本不受支援,可能不會在子版本終止服務時立即升級,實際時間由 Google 決定。
同樣地,如果叢集控制層在 90 天內未升級至新版本,GKE 也會升級。詳情請參閱「控制層 90 天修補程式政策」。
在支援結束時暫時緊急防止自動升級
做為臨時措施,只有在沒有其他選項的緊急情況下,您可以在支援結束日期後最多 90 天內,設定維護作業排除時段,並將預設範圍設為「不執行任何升級作業」,延後自動升級作業。我們不建議這麼做,因為執行不受支援的版本會帶來風險。維護排除期限到期後,GKE 會升級叢集。
找出執行子版本的叢集,這些子版本的標準支援期已結束
GKE 會找出符合下列兩項條件的叢集:
GKE 建議您升級這些叢集,因為執行不受支援的子版本會帶來風險。如果叢集版本在叢集的發布管道中不受支援,GKE 會將叢集升級至下一個支援的子版本。
GKE 會透過 Recommender 服務,以深入分析和建議的形式提供這項指引。這項指引不適用於註冊延長版的叢集,這類叢集可繼續執行子版本,直到延長支援服務結束為止。如要進一步瞭解如何管理 Recommender 的深入分析和建議,請參閱「運用深入分析和建議,最佳化 GKE 使用量」。
如要找出控制層執行版本已過支援期限的叢集,可以使用下列其中一種方法:
- 使用 Google Cloud 控制台。
- 使用 gcloud CLI 或 Recommender API,並指定
CLUSTER_VERSION_END_OF_LIFErecommender 子類型。
如需操作說明,請參閱「查看洞察資料和建議」。
如要實作這項建議,請將叢集的控制層升級至支援的子版本。如要查看支援的子版本和支援終止日期,請參閱 GKE 發布時間表。或者,如果想繼續使用現有子版本直到延長支援期結束,可以將叢集變更為延長版管道。
延長支援期限的 Container-Optimized OS 更新
在 GKE 子版本的延長支援期內,GKE 會提供叢集的修補程式升級。這些修補程式升級可能包括 Container-Optimized OS 更新,以用於 GKE 子版本所用的現有 Container-Optimized OS 里程碑。在標準支援期內,以及延長支援期開始時,GKE 子版本通常會使用一個里程碑。
不過,GKE 子版本使用的 Container-Optimized OS 里程碑會達到支援期限,通常是在 GKE 子版本的延長支援期內。發生這種情況時,GKE 會使用下一個 Container-Optimized OS 里程碑,建構所有後續的 GKE 修補程式版本。如要進一步瞭解里程碑生命週期,請參閱 Container-Optimized OS 的版本管理機制。
請參閱下列情境,瞭解自動升級的程序,以及當 GKE 無法再為 GKE 子版本在同一里程碑中導入 Container-Optimized OS 更新時,叢集管理員必須做出的決定。
Container-Optimized OS 里程碑的支援期限,早於子版本的延長支援期限
Container-Optimized OS 里程碑的支援期限,會早於使用該里程碑的次要版本延長支援期限。在此情境中,GKE 會使用下一個可用的 Container-Optimized OS 里程碑,進行未來的修補程式升級。在子版本使用的 Container-Optimized OS 里程碑終止支援前,GKE 會執行這項更新。
叢集管理員必須評估是否要升級叢集的 worker 節點,因為 GKE 不會在新里程碑發布時,自動將這些節點升級至下一個修補程式版本。您可以手動將節點升級至下一個 GKE 修補程式版本,其中包含新的里程碑。或者,您可以讓節點繼續執行相同的 GKE 修補程式版本,這樣就不會使用新的里程碑。不過,節點必須升級至下一個修補程式或子版本,才會收到安全性修補程式。
自動升級至新的 Container-Optimized OS 里程碑
在延長支援期間,GKE 子版本的下一個修補程式版本會使用較新的 Container-Optimized OS 里程碑,而非先前的修補程式版本。當新的修補程式版本成為自動升級目標時,GKE 會透過下列方式自動升級叢集:
- 控制層升級:
- GKE 會照常將控制層升級至下一個修補程式版本。
- 節點升級:
- GKE 不會將節點升級至下一個修補程式版本。
- GKE 會在延長支援期即將結束時,將節點升級至下一個子版本,與平常一樣。詳情請參閱「支援終止後的自動升級」。
由於新的里程碑版本可能會導入與工作負載不相容的變更,因此 GKE 會暫停自動將節點升級至下一個修補程式版本。如果您確定工作負載與下一個 Container-Optimized OS 里程碑相容,可以手動升級至新修補程式版本。如果您手動將節點升級至使用新 Container-Optimized OS 里程碑的修補程式版本,GKE 會繼續自動升級節點修補程式,因為節點現在會執行新的里程碑。
新修補程式版本使用新里程碑時,叢集通知
發生這種情況時,GKE 會傳送叢集通知。當使用新 Container-Optimized OS 里程碑的第一個修補程式版本在 Extended 管道中推出時,系統就會傳送這項通知。
收到這則通知後,請評估是否要手動將節點升級至下一個修補程式或子版本,或是在延長支援期間,不要接收這個子版本的後續修補程式版本。詳情請參閱「延展支援期間,新修補程式版本會改用新的 Container-Optimized OS 里程碑」。
版本管理架構
Kubernetes 版本號碼 (X.Y.Z) 採用語意化版本標準。GKE 會在 Kubernetes 版本 (X.Y.Z-gke.N) 後方附加 GKE 修補程式版本號碼。
- Kubernetes 主要版本 (X)
- 如果公用 API 導入任何回溯不相容的變更,通常會遞增主要版本。主要版本會將 Kubernetes 版本從 X.Y 遞增至 X+1.Y。
- Kubernetes 子版本 (Y)
- Kubernetes 一年會推出三個新的子版本。每個發布週期約為 15 週。已淘汰的 API可能會在新子版本中移除,例如 1.22 版。次要版本發布時,Kubernetes 版本會從 1.Y 遞增至 1.Y+1。舉例來說,Kubernetes 1.32 是 Kubernetes 1.31 的後續次要版本。
- Kubernetes 修補程式版本 (Z)
- Kubernetes 會在子版本發布後的 12 個月內,發布修補程式版本。修補程式版本發布時,Kubernetes 版本會從 X.Y.Z 遞增至 X.Y.Z+1。舉例來說,1.32.6 是 1.32.5 的後續修補程式版本。
- GKE 修補程式版本 (-gke.N)
GKE 發布的修補程式版本會對應上游 Kubernetes 修補程式版本。GKE 修補程式版本可能包含安全性更新、功能變更,以及 GKE 和開放原始碼 Kubernetes 軟體的錯誤修正。如要與 Google Cloud相容及互通,就必須進行這些更新或修正。
GKE 可能會為每個 Kubernetes 修補程式版本發布多個 GKE 修補程式版本。舉例來說,Kubernetes 修補程式版本 1.35.6 有 1.35.6-gke.1638000、1.35.6-gke.1641000 和 1.35.6-gke.1250000 等 GKE 修補程式版本。
GKE 修補程式版本通常每週都會發布。系統會逐步將修補程式版本發布至每個區域。
- GKE Alpha 版修補程式版本 (X.Y+1.Z-gke.N+preview) - 僅限 Alpha 版叢集
GKE 會在 Kubernetes 子版本發布日期前最多四個月,發布該子版本的 Alpha 修補程式版本。在註冊搶鮮版發布管道的 GKE Alpha 版叢集中,您可以實驗及測試這些預先發布的修補程式版本。Alpha 版修補程式一律以 Kubernetes 發布週期中的下一個子版本為目標,並在該子版本發布前推出。舉例來說,如果 1.36 是最新的穩定子版本,而 1.37 尚未發布,則 Alpha 修補程式版本適用於 1.37 版。
檢查可用的版本和預設版本
如要瞭解可用版本,請參閱「GKE 版本資訊」。
如要查看預設和可用的 GKE 版本,請選取下列任一選項:
控制台
前往 Google Cloud 控制台的「建立 Kubernetes 叢集」頁面:
在「位置類型」部分中,選擇叢集控制層的位置類型和區域/可用區。
在「目標發布管道」清單中,選取發布管道。
開啟「目標版本」清單。這個清單會顯示發布管道的所有可用 GKE 修補程式版本。系統會自動選取發布管道的預設修補程式版本。如果選取搶鮮版發布管道,系統也會顯示即將推出的子版本適用的 Alpha 修補程式版本。
gcloud
如要查看特定發布管道的可用和預設版本,請執行下列任一指令:
查看可用版本:
gcloud container get-server-config \ --flatten="channels" \ --filter="channels.channel=RELEASE_CHANNEL" \ --format="yaml(channels.channel,channels.validVersions)" \ --location=COMPUTE_LOCATION更改下列內容:
RELEASE_CHANNEL:發布管道的名稱。請指定下列其中一個值:RAPIDREGULARSTABLEEXTENDED
COMPUTE_LOCATION:要檢查的 Compute Engine 位置。
輸出結果會與下列內容相似:
channels: channel: RAPID validVersions: - 1.36.2-gke.2064000 - 1.36.2-gke.1498000 - 1.35.6-gke.1641000 - 1.35.6-gke.1638000 - 1.35.6-gke.1258000 - 1.34.9-gke.1610000 - 1.34.9-gke.1322000 - 1.33.13-gke.1269000 - 1.33.13-gke.1109000在搶鮮版中,
previewVersions欄位會顯示即將推出的 Kubernetes 次要版本適用的 GKE Alpha 版修補程式版本。這些版本僅適用於 Alpha 版叢集。檢查預設版本:
gcloud container get-server-config \ --flatten="channels" \ --filter="channels.channel=RELEASE_CHANNEL" \ --format="yaml(channels.channel,channels.defaultVersion)" \ --location=COMPUTE_LOCATION輸出結果會與下列內容相似:
channels: channel: RAPID defaultVersion: 1.36.2-gke.1498000在 Rapid 管道中查看可用的Alpha 修補程式版本:
gcloud container get-server-config \ --flatten="channels" \ --filter="channels.channel=RAPID" \ --format="yaml(channels.channel,channels.previewVersions)" \ --location=COMPUTE_LOCATION輸出結果會與下列內容相似:
channels: channel: RAPID previewVersions: - 1.37.0-gke.2064000+preview
如要檢查未使用任何發布版本 (已淘汰) 的叢集可用的預設版本,請執行下列任一指令:
檢查預設版本:
gcloud container get-server-config \ --format="value(defaultClusterVersion)" \ --location=COMPUTE_LOCATION將
COMPUTE_LOCATION替換為要檢查的 Compute Engine 位置。輸出結果大致如下:
1.35.6-gke.1127000。檢查可用的控制層版本:
gcloud container get-server-config \ --format="yaml(validMasterVersions)" \ --location=COMPUTE_LOCATION輸出結果會與下列內容相似:
validMasterVersions: - 1.36.2-gke.2064000 - 1.36.2-gke.1498000 - 1.36.2-gke.1346000 - 1.36.0-gke.4681000 - 1.36.0-gke.4447000 - 1.35.6-gke.1641000 - 1.35.6-gke.1638000 - 1.35.6-gke.1258000 - 1.35.6-gke.1250000 - 1.35.6-gke.1127000 - 1.35.6-gke.1049000查看可用的節點版本:
gcloud container get-server-config \ --format="yaml(validNodeVersions)" \ --location=COMPUTE_LOCATION輸出結果會與下列內容相似:
validNodeVersions: - 1.36.2-gke.2064000 - 1.36.2-gke.1498000 - 1.36.2-gke.1346000 - 1.36.0-gke.4681000 - 1.36.0-gke.4447000 - 1.35.6-gke.1641000 - 1.35.6-gke.1638000 - 1.35.6-gke.1258000 - 1.35.6-gke.1250000 - 1.35.6-gke.1127000 - 1.35.6-gke.1049000 # Multiple lines are omitted here
指定叢集版本
使用 gcloud CLI 建立或升級叢集時,可以使用 --cluster-version 旗標指定叢集版本或別名。
Autopilot 和 Standard 叢集都可以在建立叢集時使用下列別名:
upgrade-target(預覽版): 對於已註冊推出 順序的叢集, 這個別名會解析為叢集階段的目標版本。 否則,GKE 會使用發布版本的自動升級目標版本。 您只能在建立叢集時使用這個別名。叢集升級期間無法使用。
僅限標準叢集,您可以指定可用版本 (例如 1.30.2-gke.1500),或使用下列別名:
latest:叢集所在區域或地區支援的最高 Kubernetes 版本。指定latest不會自動升級。啟用節點自動升級功能,確保叢集中的節點採用最新穩定版本。1.X:指定子版本中最高的有效修補程式版本。1.X.Y:指定修補程式版本中最高的有效gke.N修補程式。-:控制層的預設 Kubernetes 版本。如果是節點升級,這會指定叢集控制層執行的版本。您可以使用這些別名建立及升級叢集。
指定節點版本
本節僅適用於以標準模式建立的叢集。 在 Autopilot 叢集中,節點會自動升級至控制層版本,您無法指定版本。
建立或升級節點集區時,可以指定版本。根據預設,節點執行的 GKE 版本與控制層相同。節點版本不得比控制層版本舊超過兩個子版本。
除了極少數例外情況,即使叢集版本不再適用,節點版本仍可使用。
控制層 90 天修補程式政策
為確保 GKE 叢集能及時收到重要安全性修補程式和其他修正內容,GKE 規定叢集的控制層至少每 90 天要升級至新的修補程式 (或子) 版本。根據預設,GKE 會自動升級叢集的控制層,頻率高於每 90 天一次。不過,您可以設定維護作業排除項目,或選擇 GKE 在推出序列中執行的升級類型,延後這些控制層升級作業。不過,如果 GKE 叢集未依規定升級,系統會在支援期限結束時自動升級,無論您設定了哪些政策,都會將叢集升級至較新的修補程式版本。
GKE 版本差異政策
GKE 版本差異政策可確保 GKE 叢集的控制層和節點維持相容性。在 GKE 叢集中,節點可以與控制層版本相符,也可以執行比控制層早最多兩個子版本的版本。
節點執行的版本不得高於控制層版本。舉例來說,如果叢集的控制層執行 1.31 版,節點可以執行 1.31、1.30 或 1.29 版,但不能執行 1.28 版或更早的版本。根據 Kubernetes OSS 版本偏差政策,節點版本不得高於控制層版本。
為確保支援性和可靠性,節點應使用支援的版本,無論是否遵循有效的版本偏差。
找出出現版本偏差且不受支援的叢集
GKE 會找出節點執行的版本與控制層不相容的叢集,原因在於版本偏差。GKE 建議您升級執行這個不支援版本的節點,並透過 Recommender 服務提供深入分析和建議。如要進一步瞭解如何管理 Recommender 的深入分析和建議,請參閱「運用深入分析和建議,最佳化 GKE 用量」。
如要找出版本偏差不受支援的叢集,可以使用下列其中一種方式:
- 使用 Google Cloud 控制台。
- 使用 gcloud CLI 或 Recommender API,並指定
CLUSTER_VERSION_SKEW_UNSUPPORTEDrecommender 子類型。
如需操作說明,請參閱「查看洞察資料和建議」。
如要實作這項建議,請升級所有節點,這些節點執行的子版本比控制層版本早超過兩個子版本。
支援略過子版本
GKE 不允許略過叢集控制層的子版本,但可以略過修補程式版本。Worker 節點可以略過次要版本。舉例來說,節點集區可以從 1.32 版升級至 1.34 版,略過 1.33 版。
如要跨多個子版本升級叢集,請一次升級一個子版本的控制層,並每次都將工作站節點升級至相同版本。舉例來說,如要將控制層從 1.32 版升級至 1.34 版,請先從 1.32 版升級至 1.33 版,然後升級工作站節點,使其與控制層版本相符,接著重複上述程序,從 1.33 版升級至 1.34 版。
將工作節點升級至相符版本,有助於避免版本偏差不受支援。建議您盡可能不要跳過版本。略過 worker 節點版本通常表示測試範圍較大,雖然可管理,但需要更多考量。
或者,您也可以使用所需版本建立新叢集,然後重新部署工作負載。
修補程式版本支援
GKE 會先在搶鮮版推出修補程式版本,然後逐步透過其他發布管道升級至這個版本。當 GKE 在發布管道中提供修補程式版本時,您可以建立、升級叢集,或在特定情況下將叢集降級至該版本。在支援子版本期間,GKE 會持續在發布管道中推出子版本的新修補程式版本。
在子版本支援期限結束前,節點的發布管道仍會提供較舊的修補程式版本,但這些版本會先移除,且無法與控制層搭配使用。如果 GKE 移除控制層可用的修補程式版本,您就無法建立、升級或降級叢集控制層至已移除的修補程式版本。如果叢集的控制層執行已移除的修補程式版本,建議您將控制層升級至最新的自動升級目標。
控制層修補程式版本淘汰
以下資訊適用於已在「一般版」中推出子版本的任何修補程式版本。
GKE 會先淘汰修補程式版本,再從發布管道中移除,供叢集控制層使用。雖然系統不再將已淘汰的修補程式版本列為控制層的可用版本,您仍可使用這些版本建立、升級或降級控制層。
建議您盡快升級至較新的修補程式版本;只有在環境的推出程序嚴格禁止您提早升級時,才使用已淘汰的版本。GKE 會在 90 天內淘汰修補程式版本,或直到子版本結束標準支援服務 (一般、穩定、無管道) 或延長支援服務 (延長管道) 為止。
支援 Alpha 版
Alpha 版是即將推出的 Kubernetes 子版本的 GKE 修補程式版本,GKE 最早會在子版本於搶鮮版中推出四個月前發布 Alpha 版。這些 Alpha 版僅適用於 GKE Alpha 版叢集,適合想試用即將推出功能,但不要求穩定性或支援的早期採用者。
搶鮮版管道提供即將推出的子版本,以及一到三個 Alpha 修補程式版本。在 GKE 向搶鮮版管道中的所有叢集提供子版本的前幾個月,GKE 會推出新的 Alpha 修補程式版本,並移除現有版本。由於 Alpha 修補程式版本僅適用於 Alpha 叢集,因此請注意下列事項:
- 您無法將 Alpha 版叢集升級至新版本。如要測試新的 Alpha 版,請建立執行該版本的 Alpha 叢集。
- 如果 Alpha 叢集執行的是已移除的 Alpha 版,則叢集會在建立 30 天後到期,或在您刪除叢集前繼續存在。
- 特定系統元件的 CVE 和錯誤修正不會追溯套用至現有的 Alpha 修補程式版本。如要取得這些修正程式,請建立執行較新 Alpha 修補程式版本的 Alpha 叢集。
GKE 在搶鮮版發布穩定子版本後,就會移除該子版本的 Alpha 修補程式版本。在發布週期中,下一個子版本的 Alpha 版會在搶鮮版中推出,最晚會在該子版本發布日期的四個月前推出。
Alpha 版生命週期
Alpha 版生命週期的里程碑如下:
- Kubernetes 發布即將推出次要版本 (
X.Y+1.0-alpha.0) 的第一個開發版本。 - 在即將發布子版本的前四個月,GKE 會在搶鮮版 (
X.Y+1.0-gke.N+preview) 中,推出該子版本的 Alpha 修補程式版本。 - Kubernetes 發布穩定子版本 (
X.Y.0)。 - GKE 會在搶鮮版 (
X.Y.0-gke.N) 中提供穩定版子版本。GKE 會從搶鮮版中移除該子版本的 Alpha 版。
Alpha 版的生命週期不會影響 GKE 次要版本生命週期。