ベアメタル版 Anthos クラスタでは、さまざまな状況でプリフライト チェックを実行できます。
- ベアメタル版 Anthos クラスタは、
bmctl
を使用して管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタ、ユーザー クラスタ、ノードプール リソースを作成または更新する際、プリフライト チェックを実行します。チェックで不合格になると、何も行われません。また、こうしたチェックをバイパスすることもできます。 - ベアメタル版 Anthos クラスタでは、管理者クラスタやハイブリッド クラスタから Kubernetes リソースをユーザー クラスタに適用するときに、内部のプリフライト チェックも実行されます。このチェックは、影響を受けるユーザー クラスタに変更が適用される前に実行されます。チェックで不合格になると、何も行われません。これらのチェックをバイパスすることも、明示的に実行することもできます。
bmctl
を使用したクラスタ作成時のプリフライト チェック
bmctl
コマンドを使用して 管理、ハイブリッド、スタンドアロン、またはユーザー クラスタを作成すると、変更が行われる前に、ベアメタル版 Anthos クラスタがプリフライト チェックを自動的に実行します。
チェックに合格すると、ベアメタル版 Anthos クラスタがクラスタを作成します。
自動プリフライト チェックの結果の無視
自動化されたプリフライト チェックをバイパスする場合は、コマンドでオプションの --force
フラグを使用します。
プリフライト チェックの個別実行
クラスタを作成する前に、プリフライト チェックを単独で実行して、マシンとノードのリソースがチェックに合格することを確認することもできます。
次のコマンドは、指定されたクラスタ構成ファイルを検証しますが、クラスタ自体の作成は行いません。
bmctl check config --cluster CLUSTER_NAME
このコマンドは、マシンとネットワークにクラスタを作成する準備が整っているかどうかを確認します。
bmctl check preflight --cluster CLUSTER_NAME
ベアメタル版 Anthos クラスタ 1.7.0 以降のバージョンのみ、bmctl
を使用したユーザー クラスタの作成がサポートされます。
ユーザー クラスタ作成に対するプリフライト チェック
既存の管理クラスタまたはハイブリッド クラスタからユーザー クラスタが作成されます。ベアメタル版 Anthos クラスタでは、変更前にプリフライト チェックを自動的に実行します。また、クラスタを作成する前に kubectl
でプリフライト チェックを実行することもできます。
マルチクラスタ セットアップでユーザー クラスタを作成するの手順に沿って、ユーザー クラスタ構成ファイルを作成します。
新しいユーザー クラスタの Namespace を作成します。たとえば、
user1
という名前の新しいユーザー クラスタを作成するために、cluster-user1
という名前の Namespace を作成できます。Namespace を作成するkubectl
コマンドは次のとおりです。ここで、ADMIN_KUBECONFIG には、管理クラスタのkubeconfig
ファイルのパスを指定します。kubectl --kubeconfig ADMIN_KUBECONFIG create namespace cluster-user1
SSH 秘密鍵ファイルをシークレットとして新しい Namespace にアップロードし、認証情報を確立します。コマンドの例を次に示します。ここで、ADMIN_KUBECONFIG には管理クラスタの
kubeconfig
ファイルへのパスを指定し、SSH_PRIVATE_KEY_FILE_PATH には SSH 秘密鍵ファイルへのパスを指定します。kubectl --kubeconfig ADMIN_KUBECONFIG create secret generic ssh-key -n cluster-user1 --from-file=id_rsa=SSH_PRIVATE_KEY_FILE_PATH
以下の構成で、新しいプリフライト チェック YAML ファイルを作成します。
configYAML
フィールドには、ステップ 1 で作成したユーザー クラスタ構成ファイルのテキストの内容を入力します。apiVersion: baremetal.cluster.gke.io/v1 kind: PreflightCheck metadata: generateName: preflightcheck- namespace: cluster-user1 spec: configYAML: | # insert user cluster config file content here.
kubectl
コマンドを使用して、ユーザー クラスタのプリフライト チェックを実行します。kubectl --kubeconfig ADMIN_KUBECONFIG create -f USER_CLUSTER_PREFLIGHT_CHECK_CONFIG
次のように置き換えます。
ADMIN_KUBECONFIG
: 管理クラスタの kubeconfig ファイルのパスUSER_CLUSTER_PREFLIGHT_CHECK_CONFIG
: 前の手順で作成したプリフライト チェック YAML ファイルへのパス
たとえば、
cluster1
という名前の管理クラスタとuser1-preflight.yaml
という名前のユーザー クラスタのプリフライト チェック構成ファイルの場合、コマンドは次のようになります。kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
プリフライト チェックのジョブ ID とともに次のメッセージが返されます。
preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
kubectl
コマンドを使用して、プリフライト チェック ジョブのステータスを確認します。kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-user1 get preflightchecks preflightcheck-g7hfo4
プリフライト チェック ジョブで不合格となった場合は、ステータスと詳細なジョブログをチェックして、不合格となったチェックを確認します。ジョブで指摘された問題を適切に修正したら、再度チェックを実行します。
既存のクラスタに対する内部プリフライト チェック
また、既存の管理クラスタやハイブリッド クラスタに Kubernetes リソースを適用するときも、ベアメタル版 Anthos が内部プリフライト チェックを実行します。チェックに失敗した場合、ベアメタル版 Anthos クラスタは、明確にチェックをバイパスしていない限り、関連ノードを変更しません。
Kubernetes リソース適用時のプリフライト チェックのバイパス
既存のクラスタにリソースを適用する際に内部プリフライト チェックを無視する場合は、クラスタ YAML ファイルの BypassPreflightCheck
フィールドを true
に設定する必要があります。
以下は、クラスタ構成 YAML ファイルの一部ですが、bypassPreflightCheck
フィールドが true
に設定されています。
# Sample cluster config to bypass preflight check errors: apiVersion: v1 kind: Namespace metadata: name: cluster-user1 --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user1 namespace: cluster-user1 spec: type: user bypassPreflightCheck: true # Anthos cluster version. anthosBareMetalVersion: 1.7.7 ....
プリフライト チェックの再有効化
新しいプリフライト チェック ラウンドを明示的にトリガーできます。その結果、プリフライト チェックが正常終了した後にベアメタル版 Anthos がクラスタを更新または新規作成できます。
次の構成で、新しいプリフライト チェック YAML ファイルを作成します。
namespace
フィールドとclusterName
フィールドに作成するクラスタの名前を入力します。apiVersion: baremetal.cluster.gke.io/v1 kind: PreflightCheck metadata: generateName: preflightcheck- namespace: CLUSTER_NAMESPACE spec: clusterName: CLUSTER_NAME
kubectl
コマンドを使用して、クラスタのプリフライト チェックを実行します。kubectl --kubeconfig ADMIN_KUBECONFIG create -f CLUSTER_PREFLIGHT_CHECK_CONFIG
次のように置き換えます。
ADMIN_KUBECONFIG
: 管理クラスタの kubeconfig ファイルのパスCLUSTER_PREFLIGHT_CHECK_CONFIG
: 以前に作成したプリフライト チェック YAML ファイルへのパス
たとえば、
cluster1
という名前の管理クラスタとuser1-preflight.yaml
という名前のユーザー クラスタのプリフライト チェック構成ファイルの場合、コマンドは次のようになります。 システムは、プリフライト チェックのジョブ ID で応答します。kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
kubectl
コマンドを使用して、プリフライト チェック ジョブのステータス ID をクエリします。kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-cluster1 get preflightchecks preflightcheck-g7hfo4
プリフライト チェック ジョブが正常に終了すると、ベアメタル版 Anthos はクラスタは、クラスタとそのリソースを作成します。
インストールのプリフライト チェックの詳細
ベアメタル版 Anthos クラスタは、プリフライト チェックを実行する際にさまざまなオペレーティング システム、ソフトウェア、マシンの前提条件をチェックします。
詳細については、インストールの前提条件の概要をご覧ください。