既存のクラスタをリセットまたは削除する

bmctl reset cluster でクラスタをリセットする

クラスタが正しくインストールされなかった場合、クラスタをリセットしてノードをクリーンな状態に戻すことができます。クラスタをリセットすると、そのクラスタは削除されます。削除すると、必要な構成を変更してからクラスタを再インストールできます。

このドキュメントのコンテキストでは、リセットと削除は同じ意味で使用されます。

セルフマネージド クラスタをリセットする

自己管理型のクラスタ(管理クラスタなど)をリセットするには、次のコマンドを実行します。

bmctl reset --cluster CLUSTER_NAME

CLUSTER_NAME は、リセットするクラスタの名前に置き換えます。

ユーザー クラスタをリセットする

ユーザー クラスタを削除またはリセットするには、それぞれ bmctl または kubectl を使用する 2 つの方法があります。ユーザー クラスタをリセットするには、bmctl を使用することをおすすめします。

bmctl を使用してユーザー クラスタをリセットする

bmctl でユーザー クラスタをリセットするには、次のコマンドを実行します。

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

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

  • CLUSTER_NAME: リセットするユーザー クラスタの名前。

  • ADMIN_KUBECONFIG_PATH: 関連する管理クラスタの kubeconfig ファイルへのパス。bmctl では、--admin-kubeconfig フラグのエイリアスとして --kubeconfig の使用がサポートされます。

kubectlを使用してユーザー クラスタを削除する

kubectl を使用してユーザー クラスタを削除するには、まずクラスタ オブジェクトを削除してから、名前空間を削除する必要があります。そうしないと、マシンをリセットするためのジョブを作成できなくなり、削除プロセスが無期限に停止する可能性があります。

kubectl でユーザー クラスタを削除するには:

  1. 次のコマンドを実行して、クラスタ オブジェクトを削除します。

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH

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

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

    • CLUSTER_NAMESPACE: クラスタの名前空間。デフォルトでは、ベアメタル版 Anthos クラスタのクラスタ名前空間は、先頭に cluster- が付いたクラスタの名前です。たとえば、クラスタに test という名前を付けると、名前空間の名前は cluster-test のようになります。

    • ADMIN_KUBECONFIG_PATH: 関連する管理クラスタの kubeconfig ファイルへのパス。

  2. クラスタが正常に削除されたら、次のコマンドを実行して名前空間を削除します。

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH

クラスタの詳細のリセット

クラスタのタイプに関係なく、リセット コマンドはクラスタ全体に適用されます。クラスタ内のノードのサブセットを指定するオプションはありません。

bmctl cluster reset コマンドからの出力は、次のサンプルのようになります。

bmctl reset --cluster cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

リセット オペレーションで、bmctl はまず GKE Hub メンバーシップの登録を削除して、影響を受けるノードのクリーンアップを行います。リセット中、ストレージのマウントと anthos-system StorageClass からのデータも削除されます。

bmctl は、すべてのノードで kubeadm reset を実行し、クラスタ ネットワーキングに使用されているトンネル インターフェースを削除して、次のディレクトリを削除します。

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

ロードバランサ ノードの場合、bmctl は次のアクションも実行します。

  • keepalived サービスと haproxy サービスを無効にします。
  • keepalivedhaproxy の構成ファイルを削除します。

bmctl reset コマンドは、クラスタ構成ファイルが現在の作業ディレクトリにあることを想定しています。デフォルトでは、パスは次のようになります: bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

クラスタの作成時に --workspacel-dir フラグを使用して別のディレクトリを指定した場合は、クラスタのリセット時にそのフラグを使用して、その作業ディレクトリを指定する必要があります。