升級 Azure 叢集版本

本頁說明如何升級 GKE on Azure 叢集的 Kubernetes 版本。

必要條件

升級叢集的 Kubernetes 版本是更一般的叢集更新作業的特例。如要瞭解一般叢集更新作業,請參閱「更新叢集」頁面。如要升級叢集版本,請按照下列步驟操作:

  • 您必須逐一升級當前版本與目標版本之間的每個子版本。舉例來說,假設您要從 1.20 升級至 1.22,則須先從 1.20 升級至 1.21,再從 1.21 升級至 1.22。
  • 您必須具備 gkemulticloud.googleapis.com/azureClusters.update Identity and Access Management 權限。

Azure 上的 GKE 如何執行更新

由於升級叢集需要重新啟動控制層節點,因此 Azure 上的 GKE 會執行「滾動更新」,步驟如下:

  1. 選擇要更新的控制層執行個體。GKE on Azure 會先更新健康狀態不良的執行個體 (如有),再更新健康狀態良好的執行個體。
  2. 刪除執行個體。GKE on Azure 會重建執行個體,並以新設定啟動執行個體。
  3. 對新執行個體執行健康狀態檢查。
  4. 如果健康狀態檢查成功,請選取另一個執行個體,並對其執行相同步驟。重複這個週期,直到所有執行個體都重新啟動或重新建立為止。 如果健康狀態檢查失敗,Azure 上的 GKE 會將叢集置於 DEGRADED 狀態,並停止更新。詳情請參閱下節。

更新失敗時

更新後,Azure 上的 GKE 會對叢集執行健康狀態檢查。 如果健康狀態檢查失敗,叢集會標示為 DEGRADED。您可以使用下列 Google Cloud CLI 指令,顯示叢集狀態:

gcloud container azure clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

更改下列內容:

  • CLUSTER_NAME:叢集名稱
  • GOOGLE_CLOUD_LOCATION:管理叢集的 Google Cloud 區域

執行升級

檢查叢集版本

升級叢集版本前,請先使用下列指令,檢查您所在區域有哪些可用版本:

gcloud container azure get-server-config \
    --location=GOOGLE_CLOUD_LOCATION

GOOGLE_CLOUD_LOCATION 替換為您管理叢集的位置。 Google Cloud

選擇升級方法

您可以透過 Google Cloud 控制台、Google Cloud CLI 或 GKE Multi-Cloud API 升級叢集版本。如要使用控制台升級叢集,請先選擇並設定登入叢集的驗證方法。詳情請參閱「連線至叢集並進行驗證」。

控制台

  1. 在 Google Cloud 控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。

    前往 GKE 叢集

  2. 選取叢集所在的 Google Cloud 專案。

  3. 在叢集清單中選取叢集名稱,然後在側邊面板中選取「查看詳細資料」

  4. 在「詳細資料」分頁中,選取「升級」

  5. 在「升級叢集的 Kubernetes 版本」對話方塊中,選取要升級的版本,然後按一下「完成」。請注意,升級叢集時,您必須逐一升級所有次要版本。

gcloud

如要升級叢集的 Kubernetes 版本,請執行下列指令:

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION

更改下列內容:

API

如要透過 API 更新叢集,請對 GKE Multi-Cloud API 使用 PATCH 作業。

  1. 建立名為 cluster_update.json 的 JSON 檔案,並在當中加入下列內容:

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
    }
    

    更改下列內容:

    • CLUSTER_VERSION:新的支援叢集版本。請注意,升級叢集時,您必須逐一升級所有子版本
  2. 使用下列指令,透過 GKE Multi-Cloud API 更新這些設定。

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/azureClusters/CLUSTER_ID?update_mask=controlPlane.Version
    

更改下列內容:

  • ENDPOINT:您的 Google Cloud 服務端點
  • PROJECT_ID:您的 Google Cloud 專案
  • GOOGLE_CLOUD_LOCATION:管理叢集的支援 Google Cloud 區域,例如 us-west1
  • CLUSTER_ID:叢集 ID

詳情請參閱 projects.locations.azureClusters.patch 方法說明文件。

升級節點集區

升級叢集版本後,請升級節點集區,完成整個程序。如要瞭解如何更新節點集區,請參閱更新節點集區

後續步驟