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

ユーザー クラスタを削除するには、ユーザー クラスタ管理者ロール(user-cluster-admin ロール)が必要です。

ユーザー クラスタを削除する手順は次のとおりです。

コンソール

  1. ナビゲーション メニューで [クラスタ] を選択します。

  2. クラスタのリストで、削除するクラスタをクリックします。

  3. [削除] [クラスタを削除] をクリックします。

  4. プロンプトが表示されたら、指定された確認フレーズを入力して [削除] をクリックし、クラスタを削除します。

kubectl

  1. ユーザー クラスタの GDCH Cluster カスタム リソースの調整を一時停止します。

    kubectl annotate clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        cluster.gdc.goog/paused=true --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    
  2. ユーザー クラスタの GDCH Cluster カスタム リソースの削除をトリガーします。

    kubectl delete clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG --wait=false
    
  3. ユーザー クラスタ内のすべての NodePoolClaim カスタム リソースの削除を開始します。

    kubectl delete --all nodepoolclaims -n NAMESPACE \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG --wait=false
    

    このコマンドは、ユーザー クラスタ内のすべてのノードプール クレームのバックグラウンド削除を開始します。

  4. ユーザー クラスタの Cluster カスタム リソースを削除します。

    kubectl delete clusters USER_CLUSTER_NAME \
        -n NAMESPACE --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    このコマンドの実行には、削除するユーザー クラスタのノードプールの数に応じて数分かかることがあります。

  5. Namespace カスタム リソースを削除します。

    kubectl --kubeconfig=ADMIN_CLUSTER_KUBECONFIG delete namespace NAMESPACE
    
  6. istio-system Namespace の Istio Secret を削除します。

    kubectl delete secrets istio-remote-secret-USER_CLUSTER_NAME -n istio-system \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    場合によっては、Istio Secret の名前が異なることがあります。Istio シークレットを一覧表示して名前を確認するには、次のコマンドを実行します。

    kubectl get secrets -n istio-system \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    
  7. ターゲット ユーザー クラスタと同じ名前で、異なる Namespace にあるアドレス プール クレームを削除します。

    for j in $(kubectl get addresspoolclaims -A -o custom-columns=:.metadata.namespace --kubeconfig=ADMIN_CLUSTER_KUBECONFIG);
    do
    kubectl delete addresspoolclaims USER_CLUSTER_NAME -n $j --kubeconfig=ADMIN_CLUSTER_KUBECONFIG;
    done
    

    このコマンドを実行すると、次のようなエラーが表示されます。

    Error from server (NotFound): addresspoolclaims.system.private.gdc.goog "USER_CLUSTER_NAME" not found
    

    これらのエラーは無視してください。このコマンドは、すべての Namespace で指定されたクラスタ名を持つすべてのアドレス プール クレームを検索しようとします。一部の Namespace には、名前付きのアドレス プール クレームが含まれていないため、エラーが発生します。

  8. ユーザー クラスタの名前空間を削除したことを確認します。

    kubectl get namespaces NAMESPACE \
        --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

    名前空間が削除されると、名前空間が見つからないことを示すエラーが出力に表示されます。次に例を示します。

    Error from server (NotFound): namespaces NAMESPACE not found
    
  9. ユーザー クラスタの GDCH Cluster カスタム リソースの調整を再開します。

    kubectl annotate clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        cluster.gdc.goog/paused- --kubeconfig=ADMIN_CLUSTER_KUBECONFIG
    

API

  • ユーザー クラスタを削除するには、GDC インスタンスから Cluster カスタム リソースを削除します。

    kubectl delete clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    次のように置き換えます。

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