ブートストラップ クラスタのトラブルシューティング

ベアメタル版 Anthos クラスタは、クラスタを作成またはアップグレードするときに、Docker の Kubernetes(kind)クラスタをデプロイして、クラスタの作成またはアップグレードに必要な Kubernetes コントローラを一時的にホストします。この一時的なクラスタは、ブートストラップ クラスタと呼ばれます。インストール時、デプロイに kind クラスタがすでに存在する場合、ベアメタル版 Anthos クラスタは既存の kind クラスタを削除します。削除は、インストールまたはアップグレードが成功した場合にのみ行われます。成功後も既存の kind クラスタを保持するには、bmctl--keep-bootstrap-cluster フラグを使用します。

ベアメタル版 Anthos クラスタでは、ブートストラップ クラスタの構成ファイルが WORKSPACE_DIR/.kindkubeconfig の下に作成されます。ブートストラップ クラスタへの接続は、クラスタの作成とアップグレード中のみ可能です。

ブートストラップ クラスタは、イメージを pull するために Docker リポジトリにアクセスする必要があります。非公開レジストリを使用しない場合は、レジストリがデフォルトで Container Registry に設定されます。クラスタの作成中、bmctl が次のファイルを作成します。

  • bmctl-workspace/config.json: レジストリ アクセス用の Google Cloud サービス アカウントの認証情報が含まれます。この認証情報は、クラスタ構成ファイルの gcrKeyPath フィールドから取得されます。

  • bmctl-workspace/config.toml: kind クラスタ内の containerd 構成が含まれます。

ブートストラップ クラスタのデバッグ

ブートストラップ クラスタをデバッグするには、次の手順に沿って行います。

  • クラスタの作成やアップグレード中に、ブートストラップ クラスタに接続します。
  • ブートストラップ クラスタのログを取得します。

bmctl の実行に使用するマシンのログは、次のフォルダにあります。

  • bmctl-workspace/CLUSTER_NAME/log/create-cluster-TIMESTAMP/bootstrap-cluster/
  • bmctl-workspace/CLUSTER_NAME/log/upgrade-cluster-TIMESTAMP/bootstrap-cluster/

CLUSTER_NAMETIMESTAMP は、クラスタの名前と対応するシステムの時刻に置き換えます。

ブートストラップ クラスタから直接ログを取得するには、クラスタの作成やアップグレード中に次のコマンドを実行します。

docker exec -it bmctl-control-plane bash

このコマンドにより、ブートストラップ クラスタで実行される bmctl コントロール プレーン コンテナ内のターミナルが開かれます。

kubelet ログと containerd ログを検査するには、次のコマンドを使用して、出力でエラーや警告を探します。

journalctl -u kubelet
journalctl -u containerd