GKE On-Prem API 可讓您使用Google Cloud 控制台、Google Cloud CLI 或 Terraform 管理地端部署叢集生命週期。使用這些工具建立叢集時,API 會將叢集中繼資料儲存在您選擇的 Google Cloud區域。如果您使用 gkectl 建立叢集,則必須在 GKE On-Prem API 中註冊叢集,才能透過這些介面查看詳細資料及管理叢集生命週期。
註冊叢集與向機群註冊叢集是不同的操作。所有 Google Distributed Cloud 叢集在建立時,都會自動註冊至機群主專案。在 Google Cloud 控制台中,由 GKE On-Prem API 管理的已註冊叢集會在「Type」(類型) 欄中顯示為「VMware」,而未註冊的叢集則會顯示為「External」(外部)。
查看已註冊的叢集
所有機群叢集都會顯示在控制台的「GKE Clusters」(GKE 叢集) 頁面中。這樣一來,您就能概略瞭解整個機群,並查看 Google Distributed Cloud 中哪些叢集是由 GKE On-Prem API 管理。
如要查看機群叢集,請按照下列步驟操作:
-
前往控制台的 GKE 叢集頁面。
前往 GKE 叢集 -
選取 Google Cloud 專案。
- 如果「Type」(類型) 欄中顯示「VMware」,表示叢集是由 GKE On-Prem API 管理。
- 如果「Type」(類型) 欄顯示「External」(外部),表示叢集並非由 GKE On-Prem API 管理。
需求條件
- 使用者叢集必須為 1.11 以上版本。
管理員叢集必須為 1.13 以上版本。
如果您不是專案擁有者,則至少必須具備專案的 Identity and Access Management 角色
roles/gkeonprem.admin。如要進一步瞭解這個角色包含的權限,請參閱 IAM 說明文件中的「GKE on-prem 角色」。
事前準備
視需要設定 gcloud CLI。
如需安裝 gcloud CLI,請參閱 gcloud CLI 說明文件。
視需要更新 gcloud CLI 元件:
gcloud components update
請按照下列步驟啟用及使用 GKE On-Prem API:
在專案中啟用 API:
gcloud services enable \ --project PROJECT_ID \ gkeonprem.googleapis.com將
PROJECT_ID替換為機群主專案的專案 ID。這是在管理員叢集設定檔或使用者叢集設定檔的gkeconnect區段中設定的專案 ID。如果收到
PERMISSION_DENIED錯誤,請仔細檢查輸入的專案 ID。如果專案 ID 正確,請執行gcloud auth login,使用有權存取專案的帳戶登入 Google Cloud CLI。如果這是您首次在專案中啟用 GKE On-Prem API,則必須初始化 API。方法是呼叫 gcloud CLI 指令,顯示可用於建立叢集的版本:
gcloud container vmware clusters query-version-config \ --project=PROJECT_ID \ --location=REGION將
REGION替換為us-west1或其他支援的地區。
如果貴組織已設定許可清單,允許來自 Google API 和其他位址的流量通過 Proxy 伺服器,請將下列項目加入許可清單:
- gkeonprem.googleapis.com
- gkeonprem.mtls.googleapis.com
這些是 GKE On-Prem API 的服務名稱。
註冊使用者叢集
gcloud CLI
列出已註冊叢集的機群成員資格:
gcloud container fleet memberships list \ --project=PROJECT_ID將
PROJECT_ID替換為機群主專案的專案 ID。請記下管理使用者叢集的管理員叢集所在的區域,因為下一個步驟會用到。
在 GKE On-Prem API 中註冊叢集:
gcloud container vmware clusters enroll USER_CLUSTER_NAME \ --project=<var>PROJECT_ID</var> \ --admin-cluster-membership=projects/PROJECT_ID/locations/MEMBERSHIP_REGION/memberships/ADMIN_CLUSTER_NAME \ --location=REGION更改下列內容:
USER_CLUSTER_NAME:要註冊的使用者叢集名稱。PROJECT_ID:機群主機專案的專案 ID。MEMBERSHIP_REGION:管理使用者叢集的管理員叢集所屬的區域。可以是global或 Google Cloud 區域。ADMIN_CLUSTER_NAME:管理使用者叢集的管理員叢集名稱。ADMIN_CLUSTER_NAME、MEMBERSHIP_REGION和PROJECT_ID會構成--admin-cluster-membership旗標的完整叢集名稱。REGION:GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定us-west1或其他支援的地區。叢集註冊後即無法變更區域。
gkectl
在管理員工作站執行下列步驟。
在使用者叢集設定檔中新增下列區段:
gkeOnPremAPI: enabled:true location:REGION將
REGION替換為 GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定us-west1或其他支援的地區。叢集註冊後即無法變更區域。更新叢集:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG_FILE
更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。USER_CLUSTER_CONFIG_FILE:使用者叢集設定檔的路徑。
註冊管理員叢集
gcloud CLI
列出已註冊叢集的機群成員資格:
gcloud container fleet memberships list \ --project=PROJECT_ID將
PROJECT_ID替換為機群主專案的專案 ID。請記下管理員叢集所在的區域,下一步會用到。
在 GKE On-Prem API 中註冊管理員叢集:
gcloud container vmware admin-clusters enroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/MEMBERSHIP_REGION/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
更改下列內容:
ADMIN_CLUSTER_NAME:要註冊的管理員叢集名稱。PROJECT_ID:機群主專案的專案 ID。MEMBERSHIP_REGION:管理員叢集所屬的區域。這可能是global或 Google Cloud 區域。ADMIN_CLUSTER_NAME、MEMBERSHIP_REGION和PROJECT_ID會構成--admin-cluster-membership旗標的完整叢集名稱。REGION:GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定us-west1或其他支援的地區。建議您使用在管理員叢集設定檔中,為stackdriver.clusterLocation設定的相同區域。叢集註冊後即無法變更區域。
gkectl
在管理員工作站執行下列步驟。
在管理員叢集設定檔中新增下列區段:
gkeOnPremAPI: enabled:true location:REGION將
REGION替換為 GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定us-west1或其他支援的地區。建議您使用stackdriver.clusterLocation中設定的相同區域。叢集註冊後即無法變更區域。更新叢集:
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG_FILE
更改下列內容:
ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。ADMIN_CLUSTER_CONFIG_FILE:管理員叢集設定檔的路徑。
取得叢集相關資訊
註冊叢集後,您可以使用下列指令取得叢集相關資訊:
使用者叢集
- 如要描述使用者叢集,請按照下列步驟操作:
gcloud container vmware clusters describe USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- 如要列出使用者叢集,請按照下列步驟操作:
gcloud container vmware clusters list \ --project=PROJECT_ID \ --location=-
設定 --location=-,即代表列出所有區域中的所有叢集。如要縮小清單範圍,請將 --location 設為註冊叢集時指定的區域。
管理員叢集
- 如要說明管理員叢集,請按照下列步驟操作:
gcloud container vmware admin-clusters describe ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- 如要列出管理員叢集,請執行下列指令:
gcloud container vmware admin-clusters list \ --project=PROJECT_ID \ --location=-
設定 --location=-,即代表列出所有區域中的所有叢集。如要縮小清單範圍,請將 --location 設為註冊叢集時指定的區域。
連線至叢集
在 GKE On-Prem API 中註冊叢集後,您必須選擇並設定驗證方式,才能透過Google Cloud 控制台管理叢集。您選取的驗證方式也會控管從指令列存取叢集的權限。如要瞭解詳情,請參考下列資源: