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 に登録されます。つまり、標準クライアントを使用してクラスタのライフサイクルを管理できます。(ただし、いくつか例外があります)。

さらにサポートが必要な場合は、Cloud カスタマーケアにお問い合わせください。

クラスタ作成のエラー

このセクションでは、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 Agent またはオンプレミス環境に関する接続の問題。
  • ユーザー クラスタの管理クラスタが削除されたか、管理クラスタとユーザー クラスタの間に接続の問題がある。

コンソールでクラスタを削除できない場合は、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 カスタマーケアにお問い合わせください。