ユーザー クラスタの削除

このページでは、GKE on VMware ユーザー クラスタを削除する方法について説明します。ユーザー クラスタの削除では、クラスタをフリートから登録解除し、ワークロード、ノードプール、コントロール プレーン ノード、対応するリソース(VM、F5 パーティション、データディスクなど)を削除します。

クラスタを削除するツールを選択する

ユーザー クラスタを削除する方法は、クラスタが GKE On-Prem API に登録されているかどうかによって異なります。次のいずれかに該当する場合は、ユーザー クラスタが GKE On-Prem API に登録されています。

  • クラスタは、Google Cloud コンソール、Google Cloud CLI(gcloud CLI)、または Terraform を使用して作成されました。これにより、クラスタが GKE On-Prem API に自動的に登録されます。これらの標準アプリケーションを総称して、GKE On-Prem API クライアントと呼びます。

  • クラスタは gkectl を使用して作成されましたが、GKE On-Prem API に登録されています。

クラスタが GKE On-Prem API に登録されている場合は、GKE On-Prem API クライアントを使用してクラスタを削除します。クラスタが GKE On-Prem API に登録されていない場合は、管理ワークステーションで gkectl を使用してクラスタを削除します。

特定のプロジェクトで GKE On-Prem API に登録されているすべてのユーザー クラスタを検索するには、次のコマンドを実行します。

gcloud container vmware clusters list \
    --project=PROJECT_ID \
    --location=-

--location=- と設定すると、すべてのリージョンのクラスタがすべて一覧表示されます。範囲を限定する必要がある場合は、--location を特定のリージョンに設定できます。

クラスタが表示された場合、そのクラスタは GKE On-Prem API に登録されています。プロジェクト オーナーでない場合は、最小限の権限でプロジェクトの Identity and Access Management ロール roles/gkeonprem.admin を入力して、登録済みクラスタを削除する必要があります。このロールに含まれる権限の詳細については、IAM のドキュメントの GKE On-Prem API ロールをご覧ください。

ステートフル ワークロードを削除する

クラスタを削除する前に、kubectl delete を実行してステートフル ワークロード、PVC、PV を削除します。

ユーザー クラスタを削除する

gkectl

gkectl を使用して、GKE On-Prem API に登録されていないクラスタを削除できます。組織のプロキシとファイアウォール ルールで、トラフィックが gkeonprem.googleapis.comgkeonprem.mtls.googleapis.com(GKE On-Prem API のサービス名)に到達できるようにしている場合、gkectl を使用できます。その後、登録済みクラスタを削除できます。

管理ワークステーションで次のコマンドを実行して、クラスタを削除します。

gkectl delete cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --cluster CLUSTER_NAME

ここで

  • ADMIN_CLUSTER_KUBECONFIG は、管理クラスタの kubeconfig ファイルのパスです。
  • CLUSTER_NAME は、削除するユーザー クラスタの名前です。

次のようなエラーで削除が失敗した場合:

Exit with error:
...
failed to unenroll user cluster CLUSTER_NAME
failed to create GKE On-Prem API client

これは、クラスタが登録されているものの、gkectl が GKE On-Prem API に到達できなかったことを意味します。この場合、最も簡単な解決方法は GKE On-Prem API クライアントを使用してクラスタを削除することです。

ユーザー クラスタの削除が途中で失敗した場合は、--force フラグを指定して gkectl を実行し、中間エラーを無視して削除を続行できます。

gkectl delete cluster \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
--cluster CLUSTER_NAME \
--force

Seesaw がバンドルされたロードバランサを使用している場合は、ロードバランサを削除します。

コンソール

ユーザー クラスタが GKE On-Prem API によって管理されている場合は、次の手順でクラスタを削除します。

  1. コンソールで、Google Kubernetes Engine クラスタの概要ページに移動します。

    GKE クラスタに移動

  2. ユーザー クラスタが存在する Google Cloud プロジェクトを選択します。

  3. クラスタのリストで、削除するクラスタを見つけます。[種類] が [外部] の場合は、クラスタが gkectl を使用して作成され、GKE On-Prem API に登録されていないことを示します。この場合は、[gkectl] タブの手順に沿ってクラスタを削除します。

    [ステータス] 列のアイコンが問題を示している場合は、[gcloud CLI] タブの手順に沿ってクラスタを削除します。削除コマンドに --ignore-errors フラグを追加する必要があります。

  4. 削除するクラスタの名前をクリックします。

  5. [詳細] パネルで、ウィンドウの上部にある [削除] をクリックします。

  6. 確認のメッセージが表示されたら、クラスタの名前を入力して [削除] をクリックします。

gcloud CLI

ユーザー クラスタが GKE On-Prem API によって管理されている場合は、gcloud CLI がインストールされている PC で次のようにします。

  1. コンポーネントを更新します。

    gcloud components update
    
  2. クラスタのリストを取得して、削除コマンドで正しいクラスタ名が指定されていることを確認します。

    gcloud container vmware clusters list \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION
    

    以下を置き換えます。

    • FLEET_HOST_PROJECT_ID: クラスタが登録されているプロジェクトの ID。

    • LOCATION: ユーザー クラスタに関連付けられた Google Cloud のロケーション。

    出力は次のようになります。

    NAME                      LOCATION    VERSION          ADMIN_CLUSTER.            STATE
    example-user-cluster-1a   us-west1    1.29.0-gke.1456    example-admin-cluster-1   RUNNING
    
  3. 次のコマンドを実行してクラスタを削除します。

    gcloud container vmware clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force \
      --allow-missing
    

    以下を置き換えます。

    • USER_CLUSTER_NAME: 削除するユーザー クラスタの名前。

    • FLEET_HOST_PROJECT_ID: クラスタが登録されているプロジェクトの ID。

    • LOCATION: ユーザー クラスタに関連付けられた Google Cloud のロケーション。

    --force フラグを使用すると、ノードプールを持つクラスタを削除できます。--force フラグを使用せずに、まず ノードプールを削除 してから、クラスタを削除する必要があります。

    --allow-missing フラグは、標準の Google API フラグです。このフラグを指定すると、クラスタが見つからない場合にコマンドは成功を返します。

    コマンドから「failed connecting to the cluster's control plane」というテキストを含むエラーが返された場合は、管理クラスタ、Connect Agent、またはオンプレミス環境のいずれかに接続の問題があることを示しています。

    • たとえば、ネットワークの問題など、接続の問題が一時的なものである場合は、しばらく待ってからコマンドを再試行します。

    • コマンドの再試行が引き続き失敗する場合は、Connect Agent のログの収集を参照して、Connect Agent に関する問題のトラブルシューティングを行ってください。

    • 管理クラスタが削除されたことがわかっている場合、管理クラスタかユーザー クラスタの VM がシャットダウンされた、またはアクセスできない場合は、--ignore-errors フラグを指定してコマンドを再試行します。

他のフラグの詳細については、gcloud CLI リファレンスをご覧ください。

リソースのクリーンアップ

クラスタの削除で問題が発生した場合は、一部の F5 または vSphere のリソースが残存する可能性があります。以下のセクションでは、こうした残されたリソースをクリーンアップする方法について説明します。

vSphere でユーザー クラスタの VM をクリーンアップする

ユーザー クラスタの VM が削除されたことを確認するには、次の手順を行います。

  1. vSphere Web Client の左側の [ナビゲータ] メニューで、[ホストとクラスタ] メニューをクリックします。

  2. 管理クラスタのリソースプールを見つけます。これは、管理クラスタ構成ファイルの vCenter.resourcePool の値です。

  3. リソースプールで、名前の先頭にユーザー クラスタ名が付けられた VM を見つけます。それらはユーザー クラスタのコントロール プレーン ノードです。ユーザー クラスタに高可用性コントロール プレーンがあるかどうかによって、1 つまたは 3 つ作成されます。

  4. ユーザー クラスタのリソースプールを見つけます。これは、ユーザー クラスタ構成ファイルの vCenter.resourcePool の値です。ユーザー クラスタの構成ファイルでリソースプールが指定されていない場合は、管理クラスタから継承されます。

  5. リソースプールで、名前の先頭にユーザー クラスタ内のノードプールの名前が付加された VM を見つけます。それらはユーザー クラスタ内のワーカーノードです。

  6. 各コントロール プレーンノードと各ワーカーノードに対して以下の操作を行います。

    1. vSphere Web Client で、VM を右クリックして [Power] > [Power Off] を選択します。

    2. VM の電源が切れたら、VM を右クリックして、[Delete from Disk] を選択します。

ユーザー クラスタの F5 パーティションをクリーンアップする

ユーザー クラスタのパーティションにエントリが残っている場合は、次の手順を行います。

  1. F5 BIG-IP コンソールの右上で、クリーンアップするユーザー クラスタ パーティションに切り替えます。
  2. [Local Traffic] > [Virtual Servers] > [Virtual Server List] の順に選択します。
  3. [Virtual Servers] メニューで、すべての仮想 IP を削除します。
  4. [Pools] を選択し、すべてのプールを削除します。
  5. [Nodes] を選択し、すべてのノードを削除します。

完了後

クラスタが削除された後は、ユーザー クラスタの kubeconfig を削除できます。