このページは、インフラストラクチャ オペレータまたはプラットフォーム管理者を対象としています。
Anthos のプライベート モードでは、状況に応じてプリフライト チェックを実行できます。
- Anthos プライベート モードでは、
actl
を使用して管理クラスタ、ユーザー クラスタ、ノードプール リソースを作成または更新する際に、プリフライト チェックを実行します。チェックで不合格になると、何も行われません。また、こうしたチェックをバイパスすることもできます。 - Anthos プライベート モードでは、管理クラスタからユーザー クラスタに Kubernetes リソースを適用する際に、内部のプリフライト チェックが実行されます。このチェックは、影響を受けるユーザー クラスタに変更が実際に適用される前に実行されます。チェックで不合格になると、何も行われません。これらのチェックをバイパスすることも、明示的に実行することもできます。
actl
を使用したクラスタ作成時のプリフライト チェック
actl
コマンドを使用して管理クラスタまたはユーザー クラスタを作成すると、Anthos プライベート モードが、変更が行われる前に自動的にプリフライト チェックを実行します。
チェックに合格すると、Anthos プライベート モードでクラスタが作成されます。
自動プリフライト チェックの結果を無視する
自動化されたプリフライト チェックをバイパスする場合は、コマンドでオプションの --force
フラグを使用します。
プリフライト チェックを個別に実行する
クラスタを作成する前にプリフライト チェックを自動的に実行することもできます。マシンとノードのリソースが確実にチェックに合格するため時間を節約できます。
このコマンドは、マシンとネットワークにクラスタを作成する準備が整っているかどうかを確認します。
actl clusters baremetal check preflight CLUSTER_NAME
ユーザー クラスタ作成に対するプリフライト チェック
既存の管理クラスタからユーザー クラスタが作成されます。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
コマンドを使用して、ユーザー クラスタのプリフライト チェックを実行します。ここで、ADMIN_KUBECONFIG は管理クラスタの kubeconfig ファイルのパスを指定し、USER_CLUSTER_PREFLIGHT_CHECK_CONFIG は前の手順で作成したプリフライト チェック YAML ファイルへのパスを指定します。 たとえば、kubectl --kubeconfig ADMIN_KUBECONFIG create -f USER_CLUSTER_PREFLIGHT_CHECK_CONFIG
user1-preflight.yaml
という名前のユーザー クラスタのプリフライト チェック構成の場合、コマンドは次のようになります。 プリフライト チェックのジョブ ID とともに次のメッセージが返されます。kubectl --kubeconfig ADMIN_KUBECONFIG create -f user1-preflight.yaml
preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
kubectl
コマンドを使用して、プリフライト チェック ジョブのステータスを確認します。kubectl --kubeconfig ADMIN_KUBECONFIG -n cluster-user1 get preflightchecks preflightcheck-g7hfo4
プリフライト チェック ジョブで不合格となった場合は、ステータスと詳細なジョブログをチェックして、不合格となったチェックを確認します。ジョブで指摘された問題を適切に修正したら、再度チェックを実行します。
既存のクラスタに対する内部プリフライト チェック
既存の管理クラスタに Cluster
Kubernetes リソースを適用すると、Anthos プライベート モードで内部プリフライト チェックも実行されます。いずれかのチェックが失敗した場合、明示的にチェックをバイパスしていない限り、Anthos プライベート モードで関連ノードは変更されません。
Kubernetes リソース適用時のプリフライト チェックをバイパスする
Cluster
リソースを既存の管理クラスタに適用する際の内部プリフライト チェックを無視するには、クラスタ リソースで 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.9.3 ....
プリフライト チェックを再度有効にする
プリフライト チェックが正常に終了すると、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 には事前に作成したプリフライト チェック YAML ファイルへのパスを指定します。 たとえば、kubectl --kubeconfig ADMIN_KUBECONFIG create -f CLUSTER_PREFLIGHT_CHECK_CONFIG
user1-preflight.yaml
という名前のユーザー クラスタのプリフライト チェック構成の場合、コマンドは次のようになります。 システムは、プリフライト チェックのジョブ ID で応答します。kubectl --kubeconfig ADMIN_KUBECONFIG create -f user1-preflight.yaml
preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
kubectl
コマンドを使用して、プリフライト チェック ジョブのステータス ID をクエリします。kubectl --kubeconfig ADMIN_KUBECONFIG -n cluster-cluster1 get preflightchecks preflightcheck-g7hfo4
プリフライト チェックジョブが正常に完了すると、Anthos プライベート モードでクラスタとクラスタのリソースが作成されます。
インストールのプリフライト チェックの詳細
Anthos プライベート モードは、プリフライト チェックを実行する際に、さまざまなオペレーティング システム、ソフトウェア、マシンの前提条件をチェックします。
詳細については、要件をご覧ください。
認証のプリフライト チェック
認証目的で、プリフライト チェックにより OpenID Connect(OIDC)構成が検証され、誤った OIDC プロファイルの適用を防ぐことができます。
これらのチェックでは、/.well-known/openid-configuration
の OIDC 検出メカニズムを使用した OIDC エンドポイントの ping などが行われます。