設定叢集,以便透過 GKE On-Prem API 管理

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 管理。

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

  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

  1. 列出已註冊叢集的機群成員資格:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    將 PROJECT_ID 替換為機群主專案的專案 ID。

    請記下管理使用者叢集的管理員叢集所在的區域,因為下一個步驟會用到。

  2. 在 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

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

  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

  1. 列出已註冊叢集的機群成員資格:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    將 PROJECT_ID 替換為機群主專案的專案 ID。

    請記下管理員叢集所在的區域,下一步會用到。

  2. 在 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

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

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