將叢集更新或升級為進階叢集

本文說明如何將叢集從 1.32 版更新或升級至進階叢集

必要條件

  • gkectl 版本必須與目標叢集版本相同。

    • 如有需要,請參閱「下載 gkectl」一文,瞭解如何取得支援的 gkectl 版本。
  • 更新或升級前,請務必先診斷叢集。

  • 請確保叢集只使用建議功能

  • 開始更新或升級前,請確認叢集未使用進階叢集不支援的任何功能。如有任何不支援的功能處於啟用狀態,請先使用 update 停用這些功能。

    • 雖然進階叢集需要高可用性 (HA) 使用者叢集,但您仍可按照本指南,將非 HA 使用者叢集更新或升級為 HA 進階叢集。
  • 您必須先將管理員叢集更新或升級為進階叢集,才能更新或升級任何使用者叢集。

  • 關於 cert-manager 安裝:系統會在進階叢集上自動安裝 cert-manager。從非進階叢集遷移至進階叢集時,整合式 cert-manager 會自動覆寫客戶安裝的任何 cert-manager 版本。更新或升級至進階叢集前,請確認現有 cert-manager 未套用重要的自訂設定或功能。詳情請參閱「升級至隨附進階叢集的cert-manager」。

將管理員叢集更新或升級為進階叢集

更新

  1. 準備進階叢集:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

  2. 管理員叢集設定檔中,將 enableAdvancedCluster 設為 true

  3. 將管理員叢集更新為進階叢集:

    gkectl update admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG
    

    更改下列內容:

    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
    • ADMIN_CLUSTER_CONFIG:管理員叢集設定檔的路徑。

    這項指令會重新建立管理叢集中的所有節點。

升級

  1. 視需要升級管理員工作站

  2. 準備進階叢集:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

  3. 管理員叢集設定檔中,將 enableAdvancedCluster 設為 true

  4. 請確認管理員叢集設定檔中的 bundlepath 欄位,與要升級的套件路徑相符。

  5. 將管理員叢集升級為進階叢集:

    gkectl upgrade admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG
    

    更改下列內容:

    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
    • ADMIN_CLUSTER_CONFIG:管理員叢集設定檔的路徑。

    這項指令會重新建立管理叢集中的所有節點。 如果採用推出作業重建部署策略,節點會一次升級一個。節點升級期間,系統會刪除 VM,然後以新版本重新建立。

將管理員叢集更新或升級為進階叢集後:

  • 現有的非進階使用者叢集仍會正常運作。

  • 您只能建立由進階管理員叢集管理的進階使用者叢集。

建議您在升級後,盡快將所有使用者叢集升級為進階叢集,確保環境一致且功能齊全。

將使用者叢集更新或升級為進階叢集

更新

  1. 如果使用者叢集控制層不具備高可用性 (HA):

    1. masterNode.replicas 從 1 改為 3。

    2. 將使用者叢集控制層節點的靜態 IP 位址新增至 network.controlPlaneIPBlock.ips 區段。

  2. 準備進階叢集:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

  3. 使用者叢集設定檔中,將 enableAdvancedCluster 設為 true

  4. 將使用者叢集更新為進階叢集:

    gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG
    

    更改下列內容:

    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。
    • USER_CLUSTER_CONFIG:使用者叢集設定檔的路徑。

    這項指令會重新建立使用者叢集中的所有節點。 採用推出作業重建部署策略時,節點會逐一更新。節點更新期間,系統會刪除 VM,然後使用新設定重新建立 VM。

升級

  1. 如果使用者叢集控制層不具備高可用性 (HA):

    1. masterNode.replicas 從 1 改為 3。

    2. 將使用者叢集控制層節點的靜態 IP 位址新增至 network.controlPlaneIPBlock.ips 區段。

  2. 準備進階叢集:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

  3. 使用者叢集設定檔中,將 enableAdvancedCluster 設為 true

  4. 確認使用者叢集設定檔中的 gkeOnPremVersion 欄位與升級的目標版本相符。

  5. 將使用者叢集升級為進階叢集:

    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 執行下列操作:

  • 建立及編輯 IssuerClusterIssuer 資源。
  • 建立及編輯憑證資源,參照簽發機構和標準簽發機構類型。
  • 建立及編輯 cert-manager 使用的標準 Kubernetes 資源。
  • 建立內含 API 金鑰的 Kubernetes Secret,並在簽發者中參照這些金鑰。
  • 將簽發者設為使用特定 HTTP-01 或 DNS-01 求解器。

您無法在隨附的 cert-manager 中自訂下列項目:

  • 設定 deploymenthelm 值。
  • cert-manager 二進位檔中加入指令列引數或旗標。
  • 變更 cert-manager Pod 的資源限制或節點選取器。
  • 修改 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

如需功能差異的完整總覽,請參閱功能比較表