設定由 GKE On-Prem API 管理的叢集

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)。

如要查看機群叢集,請按照下列步驟操作:

  1. 前往控制台的 GKE 叢集頁面。
    前往 GKE 叢集
  2. 選取 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 角色」。

事前準備

  1. 視需要設定 gcloud CLI。

    1. 如需安裝 gcloud CLI,請參閱 gcloud CLI 說明文件

    2. 視需要更新 gcloud CLI 元件:

      gcloud components update
      
  2. 請按照下列步驟啟用及使用 GKE On-Prem API:

    1. 在專案中啟用 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。

    2. 如果這是您第一次在專案中啟用 GKE On-Prem API,請初始化 API。如要這麼做,請呼叫 gcloud CLI 指令,顯示可用於建立叢集的版本:

      gcloud container vmware clusters query-version-config \
          --project=PROJECT_ID \
          --location=REGION
      

      REGION 替換為 us-west1 或其他支援的區域

  3. 如果貴機構已設定許可清單,允許來自 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

在管理員工作站上執行下列步驟。

  1. 在使用者叢集設定檔中新增下列區段:

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    請將 REGION 替換為 GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定 us-west1 或其他支援的區域。叢集註冊後即無法變更區域。

  2. 更新叢集:

    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_NAMEPROJECT_ID 用於形成 --admin-cluster-membership 標記的完整叢集名稱。

  • REGION:GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定 us-west1 或其他支援的區域。建議您使用 stackdriver.clusterLocation 中設定的相同區域。叢集註冊後,就無法變更區域。

gkectl

在管理員工作站上執行下列步驟。

  1. 在管理員叢集設定檔中新增下列區段:

    gkeOnPremAPI:
      enabled:true
      location:REGION
    

    請將 REGION 替換為 GKE On-Prem API 執行及儲存叢集中繼資料的 Google Cloud 區域。指定 us-west1 或其他支援的區域。建議您使用 stackdriver.clusterLocation 中設定的相同區域。叢集註冊後,就無法變更區域。

  2. 更新叢集:

    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 控制台管理叢集。您選取的驗證方法也會控管從指令列存取叢集的方式。如要瞭解詳情,請參考下列資源: