本文說明如何將叢集從 1.32 版更新或升級至進階叢集。
必要條件
gkectl版本必須與目標叢集版本相同。- 如有需要,請參閱「下載
gkectl」一文,瞭解如何取得支援的gkectl版本。
- 如有需要,請參閱「下載
更新或升級前,請務必先診斷叢集。
請確保叢集只使用建議功能。
開始更新或升級前,請確認叢集未使用進階叢集不支援的任何功能。如有任何不支援的功能處於啟用狀態,請先使用 update 停用這些功能。
- 雖然進階叢集需要高可用性 (HA) 使用者叢集,但您仍可按照本指南,將非 HA 使用者叢集更新或升級為 HA 進階叢集。
您必須先將管理員叢集更新或升級為進階叢集,才能更新或升級任何使用者叢集。
- 關於
cert-manager安裝:系統會在進階叢集上自動安裝cert-manager。從非進階叢集遷移至進階叢集時,整合式cert-manager會自動覆寫客戶安裝的任何cert-manager版本。更新或升級至進階叢集前,請確認現有cert-manager未套用重要的自訂設定或功能。詳情請參閱「升級至隨附進階叢集的cert-manager」。
將管理員叢集更新或升級為進階叢集
更新
準備進階叢集:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster更改下列內容:
BUNDLE_PATH:套件檔案的路徑。這個檔案位於管理員工作站的/var/lib/gke/bundles/中。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
在管理員叢集設定檔中,將
enableAdvancedCluster設為true。將管理員叢集更新為進階叢集:
gkectl update admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。ADMIN_CLUSTER_CONFIG:管理員叢集設定檔的路徑。
這項指令會重新建立管理叢集中的所有節點。
升級
視需要升級管理員工作站。
準備進階叢集:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster更改下列內容:
BUNDLE_PATH:套件檔案的路徑。這個檔案位於管理員工作站的/var/lib/gke/bundles/中。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
在管理員叢集設定檔中,將
enableAdvancedCluster設為true。請確認管理員叢集設定檔中的
bundlepath欄位,與要升級的套件路徑相符。將管理員叢集升級為進階叢集:
gkectl upgrade admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。ADMIN_CLUSTER_CONFIG:管理員叢集設定檔的路徑。
這項指令會重新建立管理叢集中的所有節點。 如果採用推出作業重建部署策略,節點會一次升級一個。節點升級期間,系統會刪除 VM,然後以新版本重新建立。
將管理員叢集更新或升級為進階叢集後:
現有的非進階使用者叢集仍會正常運作。
您只能建立由進階管理員叢集管理的進階使用者叢集。
建議您在升級後,盡快將所有使用者叢集升級為進階叢集,確保環境一致且功能齊全。
將使用者叢集更新或升級為進階叢集
更新
如果使用者叢集控制層不具備高可用性 (HA):
將
masterNode.replicas從 1 改為 3。將使用者叢集控制層節點的靜態 IP 位址新增至
network.controlPlaneIPBlock.ips區段。
準備進階叢集:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster更改下列內容:
BUNDLE_PATH:套件檔案的路徑。這個檔案位於管理員工作站的/var/lib/gke/bundles/中。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
在使用者叢集設定檔中,將
enableAdvancedCluster設為true。將使用者叢集更新為進階叢集:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。USER_CLUSTER_CONFIG:使用者叢集設定檔的路徑。
這項指令會重新建立使用者叢集中的所有節點。 採用推出作業重建部署策略時,節點會逐一更新。節點更新期間,系統會刪除 VM,然後使用新設定重新建立 VM。
升級
如果使用者叢集控制層不具備高可用性 (HA):
將
masterNode.replicas從 1 改為 3。將使用者叢集控制層節點的靜態 IP 位址新增至
network.controlPlaneIPBlock.ips區段。
準備進階叢集:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster更改下列內容:
BUNDLE_PATH:套件檔案的路徑。這個檔案位於管理員工作站的/var/lib/gke/bundles/中。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
在使用者叢集設定檔中,將
enableAdvancedCluster設為true。確認使用者叢集設定檔中的
gkeOnPremVersion欄位與升級的目標版本相符。將使用者叢集升級為進階叢集:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。USER_CLUSTER_CONFIG:使用者叢集設定檔的路徑。
這項指令會重新建立使用者叢集中的所有節點。
cert-manager 搭配進階叢集
如果您使用 cert-manager 而不使用進階叢集,請先檢查下列項目,再升級至進階叢集:
- 您的
cert-manager中沒有自訂設定或功能旗標。 cert-manager版本與隨附版本相同,或僅落後一個版本。
您可以使用隨附的 cert-manager 執行下列操作:
- 建立及編輯
Issuer和ClusterIssuer資源。 - 建立及編輯憑證資源,參照簽發機構和標準簽發機構類型。
- 建立及編輯
cert-manager使用的標準 Kubernetes 資源。 - 建立內含 API 金鑰的 Kubernetes Secret,並在簽發者中參照這些金鑰。
- 將簽發者設為使用特定 HTTP-01 或 DNS-01 求解器。
您無法在隨附的 cert-manager 中自訂下列項目:
- 設定
deployment或helm值。 - 在
cert-manager二進位檔中加入指令列引數或旗標。 - 變更
cert-managerPod 的資源限制或節點選取器。 - 修改
cert-manager軟體的安裝邏輯。 - 開啟實驗功能。
- 強制
cert-manager控制層 Pod 在特定基礎架構節點上執行。
如有特定限制導致無法使用隨附的 cert-manager,請與Google Cloud 支援團隊聯絡,瞭解進階設定選項。
下表列出各個 VMware 適用的 Google Distributed Cloud (僅限軟體) 版本所綁定的 cert-manager 版本。
| 適用於 VMware 的 Google Distributed Cloud (僅限軟體) | 隨附的 cert-manager 版本 |
|---|---|
| 1.32 | 1.17 |
| 1.33 | 1.18 |
| 1.34 | 1.19 |
改用進階叢集後的主要差異
將叢集升級或更新為進階叢集時,會與標準叢集有幾項重大差異。進階叢集的主要異動如下:
資源位置:叢集和機器資源不再位於使用者叢集中。這些資源只會位於管理員叢集中。
NodeExternalIP:節點未設定NodeExternalIP。cert-manager安裝:系統會在進階叢集上自動安裝cert-manager。如果您在叢集中安裝cert-manager,更新或升級至進階叢集時,系統會以進階叢集版本覆寫cert-manager。
如需功能差異的完整總覽,請參閱功能比較表。