GKE On-Prem API 是 Google Cloud 代管的 API,可讓您使用標準工具 (Google Cloud 控制台、Google Cloud CLI 或 Terraform) 管理地端叢集的生命週期。使用上述任一工具建立叢集時,API 會將叢集狀態的中繼資料儲存在您建立叢集時指定的 Google Cloud 區域。您可以使用標準工具,透過這項中繼資料管理叢集生命週期。如要使用這些工具查看叢集詳細資料,或管理使用 gkectl
建立的叢集生命週期,請先在 GKE On-Prem API 中註冊叢集。
術語
註冊叢集後,您就能使用控制台、gcloud CLI 或 Terraform 管理叢集生命週期。
註冊叢集與將叢集登錄至機群是不同的程序。
機群能有條理地將 Kubernetes 叢集分組,方便您統一管理。所有 Google Distributed Cloud 叢集都會在建立叢集時註冊至機群。使用 gkectl 建立叢集時,系統會將叢集註冊至您在叢集設定檔的 gkeConnect.projectID
欄位中指定的 Google Cloud 專案。這個專案稱為「機群主專案」。如要進一步瞭解機群 (包括用途、最佳做法和範例),請參閱機群管理說明文件。
查看已註冊的叢集
主控台的「GKE 叢集」頁面會顯示所有機群叢集。您不僅可以概覽整個機群,還能查看哪些叢集是由 GKE On-Prem API 管理 (適用於 Google Distributed Cloud)。
如要查看機群叢集,請按照下列步驟操作:
-
前往控制台的 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
如有需要,請捲動滑鼠,填寫 --admin-cluster-membership
標記的 ADMIN_CLUSTER_NAME
預留位置。
gcloud container vmware clusters enroll USER_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
更改下列內容:
USER_CLUSTER_NAME
:要註冊的使用者叢集名稱。PROJECT_ID
機群主專案的專案 ID。ADMIN_CLUSTER_NAME
:管理使用者叢集的管理員叢集。管理員叢集名稱是完整指定叢集名稱的最後一個區段,可專屬識別 Google Cloud中的叢集。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 vmware admin-clusters enroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
更改下列內容:
ADMIN_CLUSTER_NAME
:要註冊的管理員叢集名稱。PROJECT_ID
機群主專案的專案 ID。ADMIN_CLUSTER_NAME
和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 控制台管理叢集。您選取的驗證方法也會控管從指令列存取叢集的方式。如要瞭解詳情,請參考下列資源: