ベアメタル版 Anthos クラスタでは、さまざまな状況でプリフライト チェックを実行できます。
- ベアメタル版 Anthos クラスタは、
bmctl
を使用して管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタ、ノードプール リソースを作成または更新する際、プリフライト チェックを実行します。チェックで不合格になると、何も行われません。また、こうしたチェックをバイパスすることもできます。 - 管理クラスタまたはハイブリッド クラスタからユーザー クラスタを作成する前に、
kubectl
コマンドを使用して、一連の限定されたプリフライト チェックを実行できます。 - ベアメタル版 Anthos クラスタでは、管理者クラスタやハイブリッド クラスタから Kubernetes リソースをユーザー クラスタに適用するときに、内部のプリフライト チェックも実行されます。このチェックは、影響を受けるユーザー クラスタに変更が実際に適用される前に実行されます。チェックで不合格になると、何も行われません。これらのチェックをバイパスすることも、明示的に実行することもできます。
bmctl
を使用したクラスタ作成時のプリフライト チェック
bmctl
コマンドを使用して 管理、ハイブリッド、またはスタンドアロン クラスタを作成すると、変更が行われる前に、ベアメタル版 Anthos クラスタがプリフライト チェックを自動的に実行します。
チェックに合格すると、ベアメタル版 Anthos でクラスタが作成されます。
自動プリフライト チェックの結果の無視
自動化されたプリフライト チェックをバイパスする場合は、コマンドでオプションの --force
フラグを使用します。
プリフライト チェックの個別実行
クラスタを作成する前にプリフライト チェックを自動的に実行することもできます。マシンとノードのリソースが確実にチェックに合格するため時間を節約できます。
次のコマンドは、指定されたクラスタ構成ファイルを検証しますが、クラスタ自体の作成は行いません。
bmctl check config --cluster CLUSTER_NAME
このコマンドは、マシンとネットワークにクラスタを作成する準備が整っているかどうかを確認します。
bmctl check preflight --cluster CLUSTER_NAME
bmctl
を使用してユーザー クラスタを作成することはできません(この点を防止するためにプリフライト チェックがあります)。
ユーザー クラスタ作成に対するプリフライト チェック
既存の管理クラスタまたはハイブリッド クラスタからユーザー クラスタが作成され、kubectl
を使用してプリフライト チェックが実行されます。これらのチェックの結果に基づいて、ユーザー クラスタを作成する前にエラーがあるかどうかを確認して修正することができます。
管理クラスタまたはハイブリッド クラスタが作成されて稼働すると、ユーザー クラスタを作成する前に 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
コマンドを使用して、ユーザー クラスタのプリフライト チェックを実行します。ここで、ADMIN_KUBECONFIG は管理クラスタの kubeconfig ファイルのパスを指定し、USER_CLUSTER_PREFLIGHT_CHECK_CONFIG は前の手順で作成したプリフライト チェック YAML ファイルへのパスを指定します。kubectl --kubeconfig ADMIN_KUBECONFIG create -f USER_CLUSTER_PREFLIGHT_CHECK_CONFIG
たとえば、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: v1.6.2 ....
プリフライト チェックの再有効化
新しいプリフライト チェック ラウンドを明示的にトリガーできます。その結果、プリフライト チェックが正常終了した後にベアメタル版 Anthos がクラスタを更新または新規作成できます。
次の構成で、新しいプリフライト チェック YAML ファイルを作成します。
namespace
フィールドとclusterName
フィールドに作成するクラスタの名前を入力します。apiVersion: baremetal.cluster.gke.io/v1 kind: PreflightCheck metadata: generateName: preflightcheck- namespace: CLUSTER_NAMESPACE spec: clusterName: CLUSTER_NAME
kubectl
コマンドを発行してクラスタのプリフライト チェックを実行します。ここで、ADMIN_KUBECONFIG は管理クラスタの kubeconfig ファイルへのパスを指定し、CLUSTER_PREFLIGHT_CHECK_CONFIG はユーザー クラスタのプリフライト チェックのステップ 1 で事前に作成したプリフライト チェック YAML ファイルへのパスを指定します。kubectl --kubeconfig ADMIN_KUBECONFIG create -f CLUSTER_PREFLIGHT_CHECK_CONFIG
たとえば、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
コマンドを使用して、プリフライト チェック ジョブのステータス ID をクエリします。kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-cluster1 get preflightchecks preflightcheck-g7hfo4
プリフライト チェック ジョブが正常に終了すると、ベアメタル版 Anthos はクラスタは、クラスタとそのリソースを作成します。
インストールのプリフライト チェックの詳細
ベアメタル版 Anthos クラスタは、プリフライト チェックを実行する際にさまざまなオペレーティング システム、ソフトウェア、マシンの前提条件をチェックします。
詳細については、インストールの前提条件の概要をご覧ください。