升級 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 升級叢集,請按照下列步驟操作:
確認您使用的是最新版 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。升級時,不得選擇比已安裝版本高出一個子版本以上的版本。
管理員叢集可以管理相同或先前子版本的使用者叢集。代管使用者叢集與管理員叢集的子版本差距不得超過一個,因此在將管理員叢集升級至新的子版本前,請務必確認所有代管使用者叢集的子版本與管理員叢集相同。
升級管理員叢集
控制台
在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
選取 Google Cloud 專案,然後選取要升級的叢集。
在「詳細資料」面板中,按一下「更多詳細資料」。
在「Cluster basics」(叢集基本資訊) 專區中,按一下 「Upgrade」(升級)。
在「Choose target version」(選擇目標版本) 清單中,選取要升級的版本。建議您升級至最新修補程式版本。
按一下「升級」。
升級叢集前,系統會執行預檢檢查,驗證叢集狀態和節點健康狀態。如果通過預檢,管理員叢集就會升級。升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。
如要查看升級狀態,請按一下「Cluster Details」(叢集詳細資料) 分頁上的「Show Details」(顯示詳細資料)。
gcloud CLI
(選用) 列出專案中所有已註冊的管理員叢集,確認叢集名稱和區域:
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。取得可升級的版本清單:
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 區域。
升級管理員叢集:
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 參考資料」。
升級使用者叢集
控制台
在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
選取 Google Cloud 專案,然後選取要升級的叢集。
在「詳細資料」面板中,按一下「更多詳細資料」。
在「Cluster basics」(叢集基本資訊) 專區中,按一下 「Upgrade」(升級)。
在「Choose target version」(選擇目標版本) 清單中,選取要升級的版本。
按一下「升級」。
升級叢集前,系統會執行預檢檢查,驗證叢集狀態和節點健康狀態。如果預檢通過,使用者叢集就會升級。升級作業需要 30 分鐘以上才能完成,具體時間取決於叢集大小。
如要查看升級狀態,請按一下「Cluster Details」(叢集詳細資料) 分頁上的「Show Details」(顯示詳細資料)。
gcloud CLI
(選用) 列出專案中所有已註冊的使用者叢集,確認叢集名稱和區域:
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。取得可升級的版本清單:
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。升級使用者叢集:
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 設定。
切換至 Terraform 設定檔所在的目錄。
取得可升級的版本清單:
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。在 Terraform 設定中,將
bare_metal_version變更為要升級的 Google Distributed Cloud 版本。從上一個指令的輸出內容中指定版本。建議您升級至最新修補程式版本。初始化並建立 Terraform 方案:
terraform initTerraform 會安裝所有必要的程式庫,例如 Google Cloud供應商。
查看設定,並視需要進行變更:
terraform plan套用 Terraform 計畫,建立使用者叢集:
terraform apply
如要瞭解 google_gkeonprem_bare_metal_cluster 資源,請參閱參考文件。