升級 AWS 叢集版本

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

必要條件

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

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

GKE on AWS 的更新方式

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

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

更新失敗時

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

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

更改下列內容:

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

執行升級

檢查叢集版本

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

gcloud container aws 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 aws 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/awsClusters/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.awsClusters.patch 方法說明文件。

升級節點集區

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

後續步驟