本頁面說明 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 SLA。
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 子版本提供下列可用期間:
下表彙整了各項功能的適用期間,詳情請參閱後續章節:
| 適用期間 | 從一般版推出到正式版推出的大約時間 | 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 就不會升級叢集。
不過,如果叢集註冊了 Extended 管道,在標準支援或延長支援結束時,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 會執行這項更新。
叢集管理員必須評估是否要升級叢集的背景工作節點,因為 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 版本中附加 GKE 修補程式版本號碼 (X.Y.Z-gke.N)。
- 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 控制台中,前往「Create a Kubernetes cluster」(建立 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 旗標指定叢集版本。您可以使用特定版本,例如 1.9.7-gke.N,也可以使用版本別名:
latest:指定在叢集區域或地區中 GKE 可用的最高支援 Kubernetes 版本。1.X:指定 1.X 次要版本中最高有效的 patch+gke.N 修補程式版本1.X.Y:指定 1.X.Y 修補程式版本中最高有效的 gke.N 修補程式。-:針對叢集控制層,將預設 Kubernetes 版本指定給控制層。如要進行節點升級,請指定叢集控制層執行的版本。
將版本指定為 latest 來建立或升級叢集,將無法提供自動升級。啟用節點自動升級功能,確保叢集中的節點保持在最新穩定版本。
指定節點版本
本節僅適用於以標準模式建立的叢集。在 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 次要版本生命週期。