クラスタを診断またはチェックして、問題をデバッグし、クラスタの状態のスナップショットを取得できます。また、インストールの途中で失敗してクラスタからエラーが返された場合や、クラスタが正しく実行できない場合は、クラスタをリセットできます。
bmctl check cluster
を使用したクラスタの診断
作成したクラスタの状態を取得するには、bmctl check cluster
コマンドを使用します。コマンドのフラグを指定すると、コマンドの診断範囲を指定して、重要な情報を取得できます。bmctl check cluster
コマンドは、ユーザー クラスタでは使用できません。
診断情報により、問題の検出とデプロイのデバッグを効率的に行うことができます。コマンドを実行すると、定義した範囲に関連するクラスタとノード構成ファイルがすべて収集され、1 つの tar アーカイブにパッケージ化されます。
bmctl check cluster --snapshot --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
このコマンドは、指定したクラスタ内のすべてのシステム コンポーネントとマシンから収集したデバッグ情報を含む tar アーカイブを出力します。
ADMIN_KUBECONFIG
には kubeconfig ファイルのパスを指定し、CLUSTER_NAME
にはクラスタの名前を指定します。
収集する診断情報の範囲は、次のコマンドフラグで変更できます。
--snapshot-scenario all
フラグを指定すると、指定したクラスタのすべての Pod が対象になるため、診断のスナップショットの範囲が広がります。
bmctl check cluster --snapshot --snapshot-scenario all --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
--snapshot-dry-run
フラグは、--snapshot-config string
フラグと連携して機能します。--snapshot-dry-run
フラグを使用すると、構成ファイルが出力されます。このファイルを変更して診断範囲をカスタマイズできます。診断範囲には特定の Pod、名前空間、ノードコマンドなどが含まれます。
--snapshot-dry-run
フラグで作成した出力ファイルを変更したら、次のようにそのファイルを入力として使用し、--snapshot-config string
フラグで指定した範囲を診断できます。このフラグを省略すると、デフォルト構成が適用されます。
bmctl check cluster --snapshot --snapshot-dry-run --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
--snapshot-config
フラグを使用すると、bmctl
コマンドはスナップショットの構成ファイルで指定された範囲オプションを使用します。通常は、--snapshot-dry-run
フラグを使用してスナップショットの構成ファイルを作成します。
bmctl check cluster --snapshot --snapshot-config SNAPSHOT_CONFIG_FILE --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
管理クラスタのインストール / アップグレードが停止した場合のスナップショットを作成する
管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタをインストールするときに、bmctl が次の出力でスタックする場合に
- クラスタ kubeconfig の準備が完了するまで待機しています。
- クラスタの準備が完了するまで待機しています。
- ノードプールの準備が完了するまで待機する
または、管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタのアップグレード時に
- アップグレードが完了するのを待機しています。
次のコマンドを実行して、ブートストラップ クラスタを使用してスナップショットを取得できます。
bmctl check cluster --snapshot --kubeconfig <var>WORKSPACE_DIR</var>/.kindkubeconfig --cluster <var>CLUSTER_NAME</var>
bmctl reset cluster
によるクラスタのリセット
クラスタが正しくインストールされなかった場合、ノードをリセットしてクリーンな状態に戻すことができます。その後、構成を変更してクラスタを再インストールできます。bmctl reset cluster
コマンドは、ユーザー クラスタでは使用できません。
クラスタをリセットするには、次のコマンドを実行します。
bmctl reset --cluster CLUSTER_NAME
reset コマンドはクラスタ全体に適用されます。クラスタ内のノードのサブセットを対象にするオプションはありません。
コマンドからの出力は、次のサンプルのようになります。
bmctl reset -c 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
からのデータも削除されます。
bcmctl は、すべてのノードに kubeadm reset
を実行し、クラスタ ネットワーキングに使用されているトンネル インターフェースを削除して、次のディレクトリを削除します。
- /etc/kubernetes
- /etc/cni/net.d
- /root/.kube
- /var/lib/kubelet
ロードバランサ ノードの場合、bmctl
は次のアクションも実行します。
keepalived
サービスとhaproxy
サービスを無効にします。keepalived
とhaproxy
の構成ファイルを削除します。
リセットツールは、クラスタの構成ファイルが現在の作業ディレクトリの次の場所にあることを前提としています。
bmctl-workspace/cluster name/cluster name.yaml