プリフライト チェックについて理解する

GKE on Bare Metal では、さまざまな状況でプリフライト チェックを実行できます。

  • GKE on Bare Metal は、bmctl を使用して管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタ、ユーザー クラスタ、ノードプール リソースを作成または更新する際、プリフライト チェックを実行します。チェックで不合格になると、何も行われません。また、こうしたチェックをバイパスすることもできます。
  • GKE on Bare Metal では、管理者クラスタやハイブリッド クラスタから Kubernetes リソースをユーザー クラスタに適用するときに、内部のプリフライト チェックも実行されます。このチェックは、影響を受けるユーザー クラスタに変更が実際に適用される前に実行されます。チェックで不合格になると、何も行われません。これらのチェックをバイパスすることも、明示的に実行することもできます。

bmctl を使用したクラスタ作成のプリフライト チェック

bmctl コマンドを使用して 管理ハイブリッドスタンドアロン、またはユーザー クラスタを作成すると、変更が行われる前に、GKE on Bare Metal がプリフライト チェックを自動的に実行します。

チェックに合格すると、GKE on Bare Metal でクラスタが作成されます。

自動プリフライト チェックの結果を無視する

自動化されたプリフライト チェックをバイパスする場合は、コマンドでオプションの --force フラグを使用します。

プリフライト チェックを個別に実行する

クラスタを作成する前にプリフライト チェックを自動的に実行することもできます。マシンとノードのリソースが確実にチェックに合格するため時間を節約できます。

  • 次のコマンドは、指定されたクラスタ構成ファイルを検証しますが、クラスタ自体の作成は行いません。

    bmctl check config --cluster CLUSTER_NAME
    

    CLUSTER_NAME は、確認中の構成ファイルのクラスタの名前に置き換えます。

  • このコマンドは、マシンとネットワークにクラスタを作成する準備が整っているかどうかを確認します。

    bmctl check preflight --cluster CLUSTER_NAME
    

    CLUSTER_NAME は、確認するクラスタの名前に置き換えます。

最新のプリフライト チェックとヘルスチェックを実行する

システムでプリフライト チェックを実行できます。プリフライト チェックによって、マシンとネットワークにクラスタを作成する準備が整っていることを確認できます。次のコマンドは、マシンとネットワークをチェックして、最新のチェックリストを使用してクラスタ作成の準備ができていることを確認します。

bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest

CLUSTER_NAME は、確認するクラスタの名前に置き換えます。

ライブクラスタのヘルスチェックを実行して、クラスタが正常かどうかを判断することもできます。ライブクラスタで最新のヘルスチェックを実行するには、次のコマンドを実行します。

bmctl check cluster --cluster CLUSTER_NAME --check-image-version latest

CLUSTER_NAME は、確認するクラスタの名前に置き換えます。

アップグレードのプリフライト チェック

bmctl check preflight コマンドによって、クラスタをアップグレードする前にプリフライト チェックを実行できます。アップグレードを開始する前に、次のプリフライト チェック コマンドを実行することで、クラスタのアップグレードの準備ができているかどうかを確認できます。

  1. クラスタ構成ファイルのクラスタ バージョン(anthosBareMetalVersion)を更新します。
  2. 次のコマンドによって、クラスタがアップグレードの準備ができているかどうかを確認し、プリフライト チェックを実行できます。

    bmctl check preflight --kubeconfig ADMIN_CLUSTER_KUBECONFIG_PATH
     -c CLUSTER_NAME
    

    以下を置き換えます。

    • CLUSTER_NAME: アップグレードするクラスタの名前。
    • ADMIN_CLUSTER_KUBECONFIG_PATH: 管理クラスタの kubeconfig ファイルへのパス。

    アップグレード用の bmctl check preflight は、元のクラスタがバージョン 1.13.1 以降の場合に機能することに留意してください。

    このコマンドでプリフライト チェックを作成して、管理クラスタまたはユーザー クラスタのアップグレードをテストすると、管理クラスタに PreflightCheck カスタム リソースが作成されます。

ユーザー クラスタ作成に対するプリフライト チェック

既存の管理クラスタまたはハイブリッド クラスタからユーザー クラスタが作成されます。GKE on Bare Metal は、変更を加える前にプリフライト チェックを自動的に実行します。また、クラスタを作成する前に bmctl でプリフライト チェックを実行することもできます。

  • 次のコマンドは、指定されたクラスタ構成ファイルを検証しますが、クラスタ自体の作成は行いません。

    bmctl check config --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
    

    CLUSTER_NAME を確認するユーザー クラスタの名前に置き換え、ADMIN_KUBECONFIG_PATH を関連する管理クラスタの kubeconfig ファイルへのパスに置き換えます。

  • このコマンドは、マシンとネットワークにクラスタを作成する準備が整っているかどうかを確認します。

    bmctl check preflight --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
    

bmctl では、--admin-kubeconfig フラグのエイリアスとして --kubeconfig の使用がサポートされます。

既存のクラスタに対する内部プリフライト チェック

GKE on Bare Metal では、Kubernetes リソースを既存のクラスタに適用する際に、内部プリフライト チェックも行われます。いずれかのチェックで不合格となった場合、明示的にチェックをバイパスした場合を除いて、GKE on Bare Metal から関連ノードへの変更は行われません。

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.14.11
....

インストールのプリフライト チェックの詳細

GKE on Bare Metal は、プリフライト チェックを実行する際にさまざまなオペレーティング システム、ソフトウェア、マシンの前提条件をチェックします。

詳細については、インストールの前提条件の概要をご覧ください。