使用 GKE On-Prem API 用戶端升級管理員或使用者叢集

升級 Google Distributed Cloud 叢集後,即可部署最新的 Kubernetes 功能、安全性更新和錯誤修正。您可以使用 Google Cloud 控制台或 Google Cloud CLI,升級已註冊 GKE On-Prem API 的管理員或使用者叢集。如果您是使用 Terraform 建立使用者叢集,也可以使用 Terraform 升級叢集。

如要瞭解升級需求、最佳做法和升級程序的其他資訊,請先參閱「升級最佳做法」和「叢集升級的生命週期和階段」,再繼續操作。

什麼是 GKE On-Prem API?

GKE On-Prem API 是 Google Cloud 託管的 API,可讓您使用 Terraform 和標準Google Cloud 工具管理地端部署叢集的生命週期。GKE On-Prem API 會在 Google Cloud的基礎架構中執行。Terraform、 Google Cloud 控制台和 Google Cloud CLI 都是 API 的用戶端,會使用 API 在資料中心建立、更新、升級及刪除叢集。如果您使用標準用戶端建立叢集,叢集會註冊至 GKE On-Prem API,這表示您可以使用標準用戶端管理叢集的生命週期 (部分例外狀況除外)。如果您是使用 bmctl 建立叢集,可以在 GKE On-Prem API 中註冊叢集,以便使用標準用戶端。

事前準備

設定 gcloud CLI

如要使用 gcloud CLI 或 Terraform 升級叢集,請按照下列步驟操作:

  1. 確認您使用的是最新版 gcloud CLI。視需要更新 gcloud CLI 元件:

    gcloud components update
    

IAM 需求條件

如果您不是專案擁有者,則必須在建立叢集的 Google Cloud 專案中,取得 Identity and Access Management 角色 roles/gkeonprem.admin。如要進一步瞭解這個角色包含的權限,請參閱 IAM 說明文件中的「GKE on-prem 角色」。

如要使用控制台升級叢集,您至少需要:

  • roles/container.viewer。這個角色可讓使用者在控制台中查看 GKE 叢集頁面和其他容器資源。如要進一步瞭解這個角色包含的權限,或授予具備讀取/寫入權限的角色,請參閱 IAM 說明文件中的「Kubernetes Engine 角色」。

  • roles/gkehub.viewer。這個角色可讓使用者在控制台中查看叢集。如要進一步瞭解這個角色包含的權限,或授予具備讀取/寫入權限的角色,請參閱 IAM 說明文件中的「GKE Hub 角色」。

版本需求

Google Distributed Cloud 版本發布後,約需 7 到 14 天,才能在 GKE On-Prem API 中使用該版本。

您可以直接升級至相同子版本或下一個子版本。舉例來說,您可以從 1.36.100 升級至 1.36.200,或從 1.35.100 升級至 1.36.200。升級時,不得選擇比已安裝版本高出一個子版本以上的版本。

管理員叢集可以管理相同或先前子版本的使用者叢集。代管使用者叢集與管理員叢集的子版本差距不得超過一個,因此在將管理員叢集升級至新的子版本前,請務必確認所有代管使用者叢集的子版本與管理員叢集相同。

升級管理員叢集

控制台

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

    前往 GKE 叢集

  2. 選取 Google Cloud 專案,然後選取要升級的叢集。

  3. 在「詳細資料」面板中,按一下「更多詳細資料」。

  4. 在「Cluster basics」(叢集基本資訊) 專區中,按一下 「Upgrade」(升級)。

  5. 在「Choose target version」(選擇目標版本) 清單中,選取要升級的版本。建議您升級至最新修補程式版本。

  6. 按一下「升級」。

升級叢集前,系統會執行預檢檢查,驗證叢集狀態和節點健康狀態。如果通過預檢,管理員叢集就會升級。升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。

如要查看升級狀態,請按一下「Cluster Details」(叢集詳細資料) 分頁上的「Show Details」(顯示詳細資料)。

gcloud CLI

  1. (選用) 列出專案中所有已註冊的管理員叢集,確認叢集名稱和區域:

    gcloud container bare-metal admin-clusters list \
      --project=PROJECT_ID \
      --location=-
    
    • 將 PROJECT_ID 替換為叢集所屬機群主專案的 ID。如果您使用 bmctl 建立叢集,這就是叢集設定檔中 gkeConnect.projectID 欄位的專案 ID。

    • 設定 --location=-,即代表列出所有區域中的所有叢集。如要縮小清單範圍,請將 --location 設為特定區域。

    如果收到 PERMISSION_DENIED 錯誤,請仔細檢查輸入的專案 ID。如果專案 ID 正確,請執行 gcloud auth login,使用有權存取專案的帳戶登入 Google Cloud CLI。

  2. 取得可升級的版本清單:

    gcloud container bare-metal admin-clusters query-version-config \
      --admin-cluster=ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • ADMIN_CLUSTER_NAME:管理員叢集的名稱。

    • PROJECT_ID:叢集所屬機群主專案的 ID。

    • REGION:GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。

  3. 升級管理員叢集:

    gcloud container bare-metal admin-clusters update ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    將 VERSION 替換為要升級的 Google Distributed Cloud 版本。從上一個指令的輸出內容中指定版本。建議您升級至最新修補程式版本。

    指令輸出內容大致如下:

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
    

    在輸出範例中,字串 operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 是長時間執行的作業 OPERATION_ID。

    如要查看作業狀態,請將輸出內容中的 OPERATION_ID 複製到下列指令。開啟另一個終端機視窗並執行指令。

    gcloud container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。叢集升級期間,您可以不時執行上述指令,取得目前狀態。

升級完成後,在執行 gcloud ... update 指令的終端機視窗中,會看到類似下方的內容:

Updated Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/example-project-1234/locations/us-central1/bareMetalAdminClusters/abm-admin-cluster].
NAME               LOCATION     VERSION     MEMBERSHIP         STATE
abm-admin-cluster  us-central1  1.36.200-gke.118      abm-admin-cluster  RUNNING

如要進一步瞭解欄位和旗標,請參閱「gcloud container bare-metal admin-clusters 參考資料」。

升級使用者叢集

控制台

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

    前往 GKE 叢集

  2. 選取 Google Cloud 專案,然後選取要升級的叢集。

  3. 在「詳細資料」面板中,按一下「更多詳細資料」。

  4. 在「Cluster basics」(叢集基本資訊) 專區中,按一下 「Upgrade」(升級)。

  5. 在「Choose target version」(選擇目標版本) 清單中,選取要升級的版本。

  6. 按一下「升級」。

升級叢集前,系統會執行預檢檢查,驗證叢集狀態和節點健康狀態。如果預檢通過,使用者叢集就會升級。升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。

如要查看升級狀態,請按一下「Cluster Details」(叢集詳細資料) 分頁上的「Show Details」(顯示詳細資料)。

gcloud CLI

  1. (選用) 列出專案中所有已註冊的使用者叢集,確認叢集名稱和區域:

    gcloud container bare-metal clusters list \
      --project=PROJECT_ID \
      --location=-
    
    • 將 PROJECT_ID 替換為叢集所屬機群主專案的 ID。如果您使用 bmctl 建立叢集,這就是叢集設定檔中 gkeConnect.projectID 欄位的專案 ID。

    • 設定 --location=-,即代表列出所有區域中的所有叢集。如要縮小清單範圍,請將 --location 設為特定區域。

    指令會輸出類似以下的結果:

    NAME              LOCATION     VERSION  ADMIN_CLUSTER      STATE
    abm-user-cluster  us-central1  1.36.200-gke.118   abm-admin-cluster  RUNNING
    

    如果收到 PERMISSION_DENIED 錯誤,請仔細檢查輸入的專案 ID。如果專案 ID 正確,請執行 gcloud auth login,使用有權存取專案的帳戶登入 Google Cloud CLI。

  2. 取得可升級的版本清單:

    gcloud container bare-metal clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • USER_CLUSTER_NAME:要升級的使用者叢集名稱。

    • PROJECT_ID:叢集所屬機群主專案的 ID。

    • REGION:GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。

    指令會輸出類似以下的結果:

    versions:
    - hasDependencies: true
    version: 1.15.2
    - hasDependencies: true
    version: 1.15.1
    - hasDependencies: true
    version: 1.15.0
    - version: 1.14.6
    

    選擇「- hasDependencies: true」下方未列出的版本。在這個範例中,使用者叢集只能升級至 1.14.6。

  3. 升級使用者叢集:

    gcloud container bare-metal clusters update USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    將 VERSION 替換為要升級的 Google Distributed Cloud 版本。從上一個指令的輸出內容中指定版本。建議您升級至最新修補程式版本。

    指令輸出內容大致如下:

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
    

    在輸出範例中,字串 operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 是長時間執行的作業 OPERATION_ID。

    如要查看作業狀態,請將輸出內容中的 OPERATION_ID 複製到下列指令。開啟另一個終端機視窗並執行指令。

    gcloud container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。叢集升級期間,您可以不時執行上述指令,取得目前狀態。

如要進一步瞭解欄位和旗標,請參閱 gcloud container bare-metal clusters 參考資料。

Terraform

如要使用 Terraform 升級叢集,請使用建立叢集時所用的 Terraform 設定。

  1. 切換至 Terraform 設定檔所在的目錄。

  2. 取得可升級的版本清單:

    gcloud container bare-metal clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    更改下列內容:

    • USER_CLUSTER_NAME:要升級的使用者叢集名稱。

    • PROJECT_ID:使用者叢集所屬機群主機專案的 ID。

    • REGION:GKE On-Prem API 執行及儲存中繼資料的 Google Cloud 區域。

    如果收到 PERMISSION_DENIED 錯誤,請仔細檢查輸入的專案 ID。如果專案 ID 正確,請執行 gcloud auth login,使用有權存取專案的帳戶登入 Google Cloud CLI。

  3. 在 Terraform 設定中,將 bare_metal_version 變更為要升級的 Google Distributed Cloud 版本。從上一個指令的輸出內容中指定版本。建議您升級至最新修補程式版本。

  4. 初始化並建立 Terraform 方案:

    terraform init
    

    Terraform 會安裝所有必要的程式庫,例如 Google Cloud供應商。

  5. 查看設定,並視需要進行變更:

    terraform plan
    
  6. 套用 Terraform 計畫,建立使用者叢集:

    terraform apply
    

如要瞭解 google_gkeonprem_bare_metal_cluster 資源,請參閱參考文件。