排解已向 GKE On-Prem API 註冊的叢集問題

本頁說明如何使用 Google Cloud 控制台,調查建立 Google Distributed Cloud 使用者叢集時發生的問題。

GKE On-Prem API 是 Google Cloud 代管的 API,可讓您使用 Terraform 和標準Google Cloud 工具,管理內部部署叢集的生命週期。GKE On-Prem API 會在 Google Cloud的基礎架構中執行。Terraform、 Google Cloud 控制台和 Google Cloud CLI 都是 API 的用戶端,可透過 API 在資料中心建立、更新、升級及刪除叢集。如果您使用標準用戶端建立叢集,該叢集會註冊 GKE On-Prem API,這表示您可以使用標準用戶端管理叢集的生命週期 (少數例外)。

叢集建立錯誤

本節說明在Google Cloud 控制台中建立叢集時發生的一些錯誤。

資源已存在錯誤

建立使用者叢集失敗,並顯示類似下列的錯誤訊息:

Resource 'projects/1234567890/[...]/user-cluster1'
already exists
Request ID: 129290123128705826

這個錯誤訊息表示叢集名稱已有人使用。

如要修正這個問題,請刪除叢集再重新建立:

  1. 刪除叢集
  2. 請使用不與現有叢集衝突的名稱,重新建立叢集。

IP 位址衝突錯誤

建立使用者叢集失敗,並顯示類似下列的錯誤訊息:

- Validation Category: Network Configuration
- [FAILURE] CIDR, VIP and static IP (availability and overlapping): user: user
  cluster control plane VIP "10.251.133.132" overlaps with
  example-cluster1/control plane VIP "10.251.133.132"

您無法在Google Cloud 控制台的「叢集詳細資料」頁面中,編輯「負載平衡器」部分中的「控制層 VIP」和「Ingress VIP」等欄位。如要修正 IP 位址衝突問題,請刪除並重新建立叢集:

  1. 刪除叢集
  2. 使用與現有叢集不衝突的 IP 位址,重新建立叢集。

移除不正常的叢集

叢集可能因多種原因而進入不健康的狀態,例如:

  • Connect 代理程式或地端環境的連線問題。
  • 使用者叢集的管理員叢集已刪除,或管理員與使用者叢集之間有連線問題。

如果控制台無法刪除叢集,請使用 gcloud CLI 指令從狀況不良的叢集刪除資源。 Google Cloud 如果您最近未更新 gcloud CLI,請執行下列指令來更新元件:

gcloud components update

接著刪除 Google Cloud 資源。

使用者叢集

  1. 刪除使用者叢集:

    gcloud container bare-metal clusters delete USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --force \
      --allow-missing \
      --ignore-errors

    更改下列內容:

    • USER_CLUSTER_NAME:要刪除的使用者叢集名稱。

    • PROJECT_ID:叢集註冊的專案 ID。

    • REGION:與使用者叢集相關聯的 Google Cloud 位置。位置會顯示在控制台中。

      --force 標記會刪除含有節點集區的叢集。如果沒有 --force 標記,您必須先刪除節點集區,然後再刪除叢集。

      如果找不到叢集,--allow-missing 標記可讓指令繼續執行。

      如果管理員和使用者叢集無法連線,--ignore-errors 標記會移除 Google Cloud 資源。

      這個指令會刪除現有叢集,並從 Google Cloud中移除 GKE On-Prem API 和機群成員資格資源。

  2. 確認 GKE On-Prem API 資源已刪除:

    gcloud container bare-metal clusters list \
      --project=PROJECT_ID \
      --location=-

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

  3. 確認已刪除車隊成員資源:

    gcloud container fleet memberships list \
      --project=PROJECT_ID

管理員叢集

  1. 如果已在 GKE On-Prem API 中註冊管理員叢集,請取消註冊:

    gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=REGION \
     --allow-missing --ignore-errors 
    

    更改下列內容:

    • ADMIN_CLUSTER_NAME:管理員叢集的名稱。
    • PROJECT_ID:機群主機專案的 ID。
    • REGION: Google Cloud 區域。

    如果找不到機群成員資格,--allow-missing 標記會取消註冊叢集。

    如果管理員和使用者叢集無法連線,--ignore-errors 標記會移除Google Cloud 資源。

    這項指令會從 Google Cloud移除 GKE On-Prem API 資源。

  2. 從機群中移除叢集:

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME \
     --project=PROJECT_ID \
     --location=global

    這個指令會從 Google Cloud移除機群成員資源。

  3. 確認 GKE On-Prem API 資源已刪除:

    gcloud container fleet memberships delete ADMIN_CLUSTER_NAME --project=FLEET_HOST_PROJECT_ID
    

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

  4. 確認已刪除車隊成員資源:

    gcloud container fleet memberships list \
      --project=PROJECT_ID

後續步驟

如需其他協助,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解支援資源,包括下列項目,請參閱「取得支援」: