本頁面說明如何使用 Google Cloud 控制台或 Google Cloud CLI,升級已註冊 GKE On-Prem API 的 Google Distributed Cloud 管理員或使用者叢集。如果您是使用 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.32.100 升級至 1.32.200,或從 1.31.100 升級至 1.32.200。您無法升級至比已安裝版本晚一個以上次要版本的版本。
管理員叢集可以管理相同或先前子版本的使用者叢集。代管使用者叢集的版本不得比管理員叢集低一個以上的子版本,因此請務必先將所有代管使用者叢集升級至與管理員叢集相同的子版本,再將管理員叢集升級至新的子版本。
升級管理員叢集
主控台
在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
選取 Google Cloud 專案,然後選取要升級的叢集。
在「詳細資料」面板中,按一下「瞭解詳情」。
在「叢集基本資訊」專區中,按一下
「升級」。在「選擇目標版本」清單中,選取要升級的版本。建議您升級至最新修補程式版本。
按一下「升級」。
叢集升級前,系統會進行預檢來驗證叢集狀態和節點健康狀態。如果預檢通過,系統就會升級管理員叢集。視叢集大小而定,升級作業可能需要 30 分鐘以上。
如要查看升級狀態,請按一下「叢集詳細資料」分頁標籤上的「顯示詳細資料」。
gcloud CLI
(選用) 列出專案中所有已註冊的管理員叢集,確認叢集名稱和區域:
gcloud container bare-metal admin-clusters list \ --project=PROJECT_ID \ --location=-
將
PROJECT_ID
替換為叢集所屬車隊主機專案的 ID。如果您使用bmctl
建立叢集,這個 ID 就是叢集設定檔中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.32.200-gke.104 abm-admin-cluster RUNNING
如要進一步瞭解欄位和標記,請參閱 gcloud container bare-metal admin-clusters 參考資料。
升級使用者叢集
主控台
在控制台中,前往「Google Kubernetes Engine clusters overview」(Google Kubernetes Engine 叢集總覽) 頁面。
選取 Google Cloud 專案,然後選取要升級的叢集。
在「詳細資料」面板中,按一下「瞭解詳情」。
在「叢集基本資訊」專區中,按一下
「升級」。在「選擇目標版本」清單中,選取要升級的版本。
按一下「升級」。
叢集升級前,系統會進行預檢來驗證叢集狀態和節點健康狀態。如果預檢通過,使用者叢集就會升級。視叢集大小而定,升級作業可能需要 30 分鐘以上才能完成。
如要查看升級狀態,請按一下「叢集詳細資料」分頁標籤上的「顯示詳細資料」。
gcloud CLI
(選用) 列出專案中所有已註冊的使用者叢集,確認叢集名稱和地區:
gcloud container bare-metal clusters list \ --project=PROJECT_ID \ --location=-
將
PROJECT_ID
替換為叢集所屬車隊主機專案的 ID。如果您使用bmctl
建立叢集,這個 ID 就是叢集設定檔中gkeConnect.projectID
欄位的專案 ID。設定
--location=-
時,表示要列出所有區域的所有叢集。如要縮減清單範圍,請將--location
設為特定區域。
指令會輸出類似以下的結果:
NAME LOCATION VERSION ADMIN_CLUSTER STATE abm-user-cluster us-central1 1.32.200-gke.104 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 init
Terraform 會安裝任何需要的程式庫,例如 Google Cloud供應商。
檢查設定並視需要進行變更:
terraform plan
套用 Terraform 方案,建立使用者叢集:
terraform apply
如要瞭解 google_gkeonprem_bare_metal_cluster
資源,請參閱參考說明文件。