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

GKE On-Prem API 是 Google Cloud 代管的 API,可讓您使用標準工具 (Google Cloud 控制台、Google Cloud CLI 或 Terraform) 管理地端叢集的生命週期。使用上述任一工具建立叢集時,API 會將叢集狀態的中繼資料儲存在您建立叢集時指定的 Google Cloud 區域。您可以使用標準工具,透過這項中繼資料管理叢集生命週期。如要使用這些工具查看叢集詳細資料,或管理使用 bmctl 建立的叢集生命週期,請先在 GKE On-Prem API 中註冊叢集。

術語

註冊叢集後,您就能使用控制台、gcloud CLI 或 Terraform 管理叢集生命週期。

註冊叢集與將叢集登錄至機群是不同的程序。 機群能有條理地將 Kubernetes 叢集分組,方便您統一管理。所有 Google Distributed Cloud 叢集都會在建立叢集時註冊至機群。使用 bmctl 建立叢集時,系統會將叢集註冊至叢集設定檔中 gkeConnect.projectID 欄位指定的 Google Cloud 專案。這個專案稱為「機群主專案」。如要進一步瞭解機群 (包括用途、最佳做法和範例),請參閱機群管理說明文件。

查看已註冊的叢集

主控台的「GKE 叢集」頁面會顯示所有機群叢集。您不僅可以概覽整個機群,還能查看哪些叢集是由 GKE On-Prem API 管理 (適用於 Google Distributed Cloud)。

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

  1. 前往控制台的 GKE 叢集頁面。
    前往 GKE 叢集
  2. 選取 Google Cloud 專案。
    • 如果「Type」(類型) 欄顯示「Bare metal」(裸機),表示叢集是由 GKE On-Prem API 管理。
    • 如果「Type」(類型) 欄顯示「External」(外部),表示叢集並非由 GKE On-Prem API 管理。

需求條件

  • 只有使用者和管理員叢集可以透過 GKE On-Prem API 註冊。 不支援註冊混合式和獨立叢集。
  • 1.13 以上版本。
  • 系統不支援註冊在自訂命名空間下建立的使用者叢集。 產生的使用者叢集設定檔會使用 cluster-CLUSTER_NAME 形式的預設叢集命名空間。如果您在建立叢集時變更命名空間,系統會封鎖您嘗試使用 GKE On-Prem API 註冊叢集的作業。

  • 如果您不是專案擁有者,至少必須獲授專案的 Identity and Access Management 角色 roles/gkeonprem.admin。如要瞭解這個角色包含的權限,請參閱 IAM 說明文件中的「GKE on-prem 角色」。

事前準備

  1. 視需要設定 gcloud CLI。

    1. 如需安裝 gcloud CLI,請參閱 gcloud CLI 說明文件。視需要更新 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 bare-metal 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 bare-metal 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 或其他支援的區域。叢集註冊後即無法變更區域。

bmctl

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

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

    gkeOnPremAPI:
      enabled: true
      location: REGION
    

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

  2. 更新叢集:

    bmctl update cluster -c USER_CLUSTER_NAME \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    更改下列內容:

    • USER_CLUSTER_NAME:要更新的使用者叢集名稱。

    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

註冊管理員叢集

gcloud CLI

如有需要,請捲動滑鼠,填寫 --admin-cluster-membership 標記的 ADMIN_CLUSTER_NAME 預留位置。

gcloud container bare-metal 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 或其他支援的區域。叢集註冊後即無法變更區域。

bmctl

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

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

    gkeOnPremAPI:
      enabled: true
      location: REGION
    

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

  2. 更新叢集:

    bmctl update cluster -c ADMIN_CLUSTER_NAME \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    更改下列內容:

    • ADMIN_CLUSTER_NAME:要更新的管理員叢集名稱。

    • ADMIN_CLUSTER_KUBECONFIG:管理員叢集 kubeconfig 檔案的路徑。

取得叢集相關資訊

叢集註冊完成後,您可以使用下列指令取得叢集相關資訊:

使用者叢集

  • 如要描述使用者叢集,請執行下列指令:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • 如要列出使用者叢集,請執行下列指令:
gcloud container bare-metal clusters list \
    --project=PROJECT_ID \
    --location=-

設定 --location=- 時,表示要列出所有區域的所有叢集。如需縮減清單範圍,請將 --location 設為註冊叢集時指定的區域。

管理員叢集

  • 如要描述管理員叢集,請執行下列操作:
gcloud container bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=REGION
  • 如要列出管理員叢集,請執行下列指令:
gcloud container bare-metal admin-clusters list \
    --project=PROJECT_ID \
    --location=-

設定 --location=- 時,表示要列出所有區域的所有叢集。如需縮減清單範圍,請將 --location 設為註冊叢集時指定的區域。

連線至叢集

在 GKE On-Prem API 中註冊叢集後,您需要選擇並設定驗證方法,才能從 Google Cloud 控制台管理叢集。您選取的驗證方法也會控管從指令列存取叢集的方式。詳情請參閱下列文章: