本頁面將概略說明 VMware 叢集的升級程序和版本差異資訊,適用於 Google Distributed Cloud (僅限軟體)。這項資訊有助於規劃多叢集環境中叢集的升級順序。如需更詳細的規劃資訊,包括協助您規劃升級的檢查清單,請參閱「升級最佳做法」。
本頁面適用於負責管理基礎技術架構生命週期的 IT 管理員和作業人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
進階叢集差異
啟用進階叢集後,升級作業會有所不同,尤其是在 1.31 版的進階叢集預先發布版中。如要查看升級差異,請在這份文件中搜尋「advanced
」一詞。如需所有差異的表格,請參閱執行進階叢集時的差異。
版本規則
升級規則取決於叢集次要版本。
如果是 1.30 以下版本,使用者叢集的子版本必須大於或等於管理員叢集的子版本。修補程式版本無關緊要。舉例來說,如果使用者叢集版本為 1.30.1,管理員叢集可以升級至較高的修補程式版本,例如 1.30.3。
如果是 1.31 以上版本,管理員叢集版本 (包括修補程式版本) 必須大於或等於使用者叢集版本。舉例來說,如果管理員叢集是 1.31.1 版,使用者叢集最高只能升級至 1.31.1 版。
如要將叢集升級至 1.31 版,請先將所有叢集升級至 1.30 版。所有叢集都升級至 1.30 版後,即可將管理員叢集升級至 1.31 版。完成後,即可將使用者叢集升級至與管理員叢集相同的 1.31 修補程式版本。
「gkectl
」的版本規則
可供升級的 gkectl
版本取決於目標叢集版本 (即要升級的叢集版本)。一般來說,您會使用與叢集目標版本相同的 gkectl
版本。升級期間會強制執行下列規則:
gkectl
版本不得低於目標次要叢集版本。舉例來說,如果您要將 1.29 叢集升級至 1.30,就無法使用gkectl
1.29,因為該版本低於目標叢集版本。修補程式版本不重要。舉例來說,您可以使用gkectl
1.29.0-gke.1456 版升級至較高的修補程式版本,例如 1.29.1000-gke.94。gkectl
版本不得高於目前的叢集版本超過兩個次要版本。舉例來說,如果將 1.28 叢集升級至 1.29,gkectl
版本可以是 1.29 或 1.30。但您無法使用gkectl
1.31 版,因為該版本比叢集版本高出三個子版本。
如有需要,請參閱「下載 gkectl
」一文,瞭解如何取得支援的 gkectl
版本。
如要瞭解管理員和使用者叢集之間的版本差異,請參閱本文的「版本差異」一節。
升級順序
升級管理員和使用者叢集的順序,取決於您要升級的叢集版本 (即目標版本):
1.31 以上版本
如果目標版本為 1.31 以上,您必須先升級管理員叢集,再升級由該管理員叢集管理的使用者叢集。下列步驟說明升級順序。
升級管理員工作站。即使您打算使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升級使用者叢集,也建議您這麼做。
升級管理員叢集。
一次升級一個使用者叢集。
您可以選擇分別升級使用者叢集的控制層和節點集區。詳情請參閱「升級節點集區」。
- 1.31 版:不適用於進階叢集。
- 1.32 以上版本:適用於進階叢集。
升級節點集區時,您可以選擇略過次要版本。詳情請參閱「升級節點集區時略過版本」。
- 1.31 版:不適用於進階叢集。
- 1.32 以上版本:適用於進階叢集。
使用者叢集的所有節點集都升級至與使用者叢集控制層相同的版本後,使用者叢集就會完成升級。
1.30 以下版本
如果目標版本為 1.30 以下,您必須先升級所有使用者叢集,再升級管理這些叢集的管理員叢集。
升級管理員工作站。即使您打算使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升級使用者叢集,也建議您這麼做。
一次升級一個使用者叢集。
在 1.14 以上版本中,您可以選擇將使用者叢集的控制層與使用者叢集上的節點集區分開升級。
在 1.16 以上版本中,升級節點集區時,您可以選擇略過次要版本。詳情請參閱「升級節點集區時略過版本」。
使用者叢集的所有節點集都升級至與使用者叢集控制層相同的版本後,使用者叢集就會完成升級。
管理員叢集的子版本不得高於其管理的任何使用者叢集。如果使用者叢集與管理員叢集處於相同子版本,則無法升級管理員叢集。
如果所有使用者叢集都比管理員叢集晚至少一個子版本,您可以選擇升級管理員叢集。
1.28 以上版本的升級版本偏差和版本規則有所變更。詳情請參閱本文的「版本差異」一節。
升級管理員叢集
1.31 以上版本
如果目標版本為 1.31 以上,請務必先升級管理員叢集,再升級使用者叢集。
您可以使用 gkectl
或 gcloud CLI 升級管理員叢集。
1.30 以下版本
如果目標版本為 1.30 以下,請先升級所有使用者叢集,再升級管理員叢集。當所有使用者叢集的控制層和節點集,都比管理員叢集高至少一個子版本時,您就可以升級管理員叢集。
只有 gkectl
支援升級管理員叢集。GKE On-Prem API 用戶端不支援升級管理員叢集。
升級使用者叢集
升級使用者叢集時,您可以選擇升級整個使用者叢集 (也就是升級叢集中的控制層和所有節點集區),也可以選擇升級使用者叢集的控制層,並讓節點集區維持目前版本。您採取的做法取決於多項因素,例如:
- 叢集所在的環境 (正式或非正式)。
- 維護期間長度。
- 使用者叢集版本。
舉例來說,在開發環境中,您可能會想簡化程序,同時升級使用者叢集的控制層和所有節點集區。但在維護時間較短的正式版環境中,您可能只想升級控制層,因為這樣比較省時,而且如果控制層具備高可用性 (HA),升級作業就不會中斷使用者工作負載。如果控制層版本為 1.28 以上,升級節點集區時可以略過子版本。
- 1.31 版:不適用於進階叢集。
- 1.32 以上版本:適用於進階叢集。
選擇性升級節點集區
在某些情況下,您可能只想升級使用者叢集中的部分節點集區,而非全部。舉例來說,升級控制層後,您可以升級流量較少或執行最不重要工作負載的節點集區。確認工作負載在新版本上正常運作後,即可升級其他節點集區,直到所有節點集區都升級為止。詳情請參閱「升級節點集區」。
升級節點集區時略過子版本
如果叢集版本為 1.16 以上,升級節點集區時可以略過次要版本。執行跳過版本升級,可將節點集區依序升級兩個版本所需的時間減半。此外,略過版本升級可讓您延長升級間隔,以維持使用支援版本。減少升級次數可降低工作負載中斷情形,並縮短驗證時間。詳情請參閱「升級節點集區時略過版本」。
選擇升級使用者叢集的工具
Google Distributed Cloud 提供多種工具,供您升級使用者叢集。
在管理員工作站執行的指令列工具
gkectl
。升級前,請修改使用者叢集的設定檔,設定叢集控制層的目標版本,並視需要設定節點集區的目標版本。您會在指令列中向gkectl
指定這個檔案。如果已啟用進階叢集,您必須使用
gkectl
升級。 進階叢集不支援 GKE On-Prem API 用戶端。Google Cloud 控制台、Google Cloud CLI 或 Terraform,您可以在任何可連上 GKE On-Prem API 的電腦上執行這些工具。這些標準工具是GKE On-Prem API 的用戶端,可在 Google Cloud 基礎架構上執行。
只有在使用 Terraform 建立使用者叢集時,才能使用 Terraform 升級。
如果使用者叢集是使用
gkectl
建立,則必須向 GKE On-Prem API 註冊叢集,才能使用控制台或 gcloud CLI 升級叢集。在 1.16 以上版本中,使用gkectl
建立的叢集預設會註冊 GKE On-Prem API。如果是使用舊版建立的叢集,您可以在建立叢集後註冊叢集。即使決定使用
gkectl
升級,您可能還是會想向 GKE On-Prem API 註冊叢集,以便使用主控台或 gcloud CLI 取得叢集相關資訊。
使用的工具取決於您打算如何升級使用者叢集:
升級整個叢集: 您可以使用
gkectl
、 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升級使用者叢集 (控制層和所有節點集區)。只升級控制層:您可以使用
gkectl
、gcloud CLI 或 Terraform,將使用者叢集的控制層與節點集區分開升級。控制台不支援只升級控制層。在控制層升級後,選擇性升級節點集區:您可以在控制層升級後,使用
gkectl
、gcloud CLI 或 Terraform 升級特定節點集區。同時升級控制層和一或多個節點集區: 只有
gkectl
支援這個用途。
版本偏差
版本差異是指管理員叢集與代管使用者叢集之間的子版本差異。在以下各節中,「使用者叢集版本」是指控制層和節點集區的整體版本。
此外,版本差異是指使用者叢集控制層與使用者叢集節點集區之間,次要版本的差異。
在多叢集環境中,瞭解升級支援的版本偏差和版本規則,可能有助於規劃叢集升級順序。
管理員和使用者叢集版本差異
管理員叢集可以管理不同版本的使用者叢集。這項功能可讓您按照貴機構適用的時間表,升級一系列使用者叢集。
1.31 以上版本
在 1.31 以上版本中,管理員叢集最多可比使用者叢集高 2 個子版本。舉例來說,如果管理員叢集是 1.31 版,該管理員叢集管理的使用者叢集可以是 1.29、1.30 或 1.31 版。
一般而言,如果 1.n
是管理員叢集的子版本,則使用者叢集可以是 1.n-2
、1.n-1
或 1.n
。所有使用者叢集都必須達到 1.n
或 1.n-1
,管理員叢集才能升級至下一個子版本。
1.29 - 1.30
版本偏差與 1.28 相同。在 1.29 版中,這項功能已進入正式發布階段。
在 1.29 以上版本中,使用者叢集版本最多可比管理員叢集高出 2 個子版本。舉例來說,如果管理員叢集位於 1.30,該管理員叢集管理的使用者叢集可以位於 1.30、1.31 或 1.32。
一般而言,如果 1.n
是管理員叢集的子版本,則使用者叢集可以是 1.n
、1.n+1
或 1.n+2
。使用者叢集位於 1.n+2
時,必須先將管理員叢集升級至少一個子版本,才能將使用者叢集升級至下一個子版本。
1.28
在 1.28 版中,使用者叢集最多可比管理員叢集高 2 個子版本。舉例來說,如果管理員叢集是 1.15,則由該管理員叢集管理的使用者叢集可以是 1.15、1.16 或 1.28。使用者叢集必須先升級至 1.28 版,管理員叢集才能升級至 1.16 以上版本。
1.16 以下版本
在 1.16 以下版本中,使用者叢集只能比管理員叢集高 1 個子版本。舉例來說,如果管理員叢集位於 1.15,則由該管理員叢集管理的使用者叢集可位於 1.15 或 1.16。
一般來說,如果 1.n
是管理員叢集的子版本,使用者叢集可以是 1.n
或 1.n+1
。使用者叢集必須與管理員叢集處於相同子版本,才能升級至下一個子版本。
使用者叢集控制層和節點集區版本偏差
1.29 以上版本
版本偏差與 1.28 相同。在 1.29 版中,這項功能已進入正式發布階段。
在 1.29 以上版本中,使用者叢集的控制層最多可比叢集中的節點集區高 2 個子版本。舉例來說,如果使用者叢集的控制層為 1.32,叢集中的節點集區可以是 1.30、1.31 或 1.32。
一般而言,如果 1.n
是使用者叢集控制層的次要版本,叢集中的節點集區可以是 1.n
、1.n-1
或 1.n-2
。使用者叢集控制層必須等到所有節點集區都達到 1.n
或 1.n-1
,才能升級至下一個子版本。
1.28
在 1.28 版中,使用者叢集的控制層最多可比叢集中的節點集區高 2 個子版本。舉例來說,如果使用者叢集的控制層為 1.28,叢集中的節點集區可以是 1.15、1.16 或 1.28。使用者叢集控制層必須等到所有節點集區都處於 1.28
或 1.16
狀態,才能升級至 1.29 版。
1.16 以下版本
在 1.16 以下版本中,使用者叢集的控制層只能比叢集中的節點集區高 1 個子版本。舉例來說,如果使用者叢集的控制層是 1.16,叢集中的節點集區可以是 1.15 或 1.16。
一般來說,如果 1.n
是使用者叢集控制層的次要版本,叢集中的節點集區可以是 1.n
或 1.n-1
。使用者叢集必須等到所有節點集區都升級至與控制層相同的子版本,才能升級至下一個子版本。
管理員叢集和使用者叢集控制層升級的版本規則
管理員叢集和使用者叢集控制層升級作業的版本規則相同。您可以直接升級至同一子版本或下一個子版本中的任何版本。舉例來說,您可以從 1.32.0 升級至 1.32.1,或從 1.31.1 升級至 1.32.0。修補程式版本不會影響升級版本規則。
如果升級至的版本不屬於下一個次要版本,您必須逐一升級當前版本與目標版本之間的每個次要版本。系統不支援略過子版本。舉例來說,如要從 1.30.x 版升級至 1.32.x 版,就無法直接升級。您必須先從 1.30.x 升級至 1.31.x,再升級至 1.32.x。
一般來說,管理員叢集升級和使用者叢集控制層升級作業僅支援從 1.n
升級至 1.n+1
。
節點集區升級的版本規則
在 1.28 以上版本中,升級使用者叢集中的節點集區時,可以跳過一個子版本。舉例來說,如果使用者叢集控制層為 1.32,節點集區為 1.30,您可以略過 1.31,直接將節點集區升級至 1.32。修補程式版本不會影響升級版本規則。
一般來說,如果使用者叢集控制層位於 1.n
,您可以將位於 1.n-2
的節點集區直接升級至 1.n
。升級節點集區時,如果略過一個次要版本,可能比執行兩次節點集區升級 (從 1.n-2
升級至 1.n-1
,然後升級至 1.n
) 節省時間。這也是您可能偏好將使用者叢集的控制層與在使用者叢集上執行的節點集區分開升級的原因。
- 1.31 版:不適用於進階叢集。
- 1.32 以上版本:適用於進階叢集。
修補程式版本升級
建議您盡可能升級至最新修補程式版本,確保叢集採用最新的安全性修正程式。修補程式版本不會影響版本傾斜和升級規則。在特定次要版本中,您可以升級至任何較新的修補程式版本。也就是說,只要 Y
大於 X
,您就可以將 1.32.X
版本叢集升級至 1.32.Y
版本。舉例來說,您可以從 1.31.0
升級至 1.31.1
,也可以從 1.31.1
升級至 1.31.3
。
後續步驟
請參閱升級最佳做法,並制定叢集升級計畫。