このトピックでは、GKE On-Prem 構成ファイルに対してプリフライト チェックを実行する方法について説明します。
概要
インストール中に、gkectl create-config
を実行して GKE On-Prem の構成ファイルを生成します。この構成ファイルによって、インストールが促されます。vSphere 環境、ネットワーク、ロードバランサ、クラスタの表示方法についての情報を指定します。構成ファイルは、管理ワークステーションの作成前または作成後に生成できます。特定のチェックに合格するには、チェックが管理ワークステーションから実行される必要があります。
ご使用の環境とクラスタのニーズに合わせてファイルを変更した後、そのファイルを使用してオンプレミス環境でクラスタを作成します。
クラスタを作成する前に、gkectl check-config
を実行していくつかのプリフライト チェックで構成ファイルを検証します。
チェックモードをプリフライトして検証をスキップする
gkectl check-config
にはデフォルト モードと高速モードがあります。
- デフォルト モードでは、コマンドは各フィールドを包括的に検証します。また、デフォルト モードでは、検証の一部として一時的な vSphere 仮想マシン(VM)が作成されます。これにはさらに時間がかかります。
- 高速モードでは、テスト VM を作成するチェックをスキップし、高速チェックのみを実行します。高速モードを有効にするには、
--fast
フラグを渡します。
特定の検証をスキップするには、gkectl check-config --help
で説明されている他のフラグを渡します。
プリフライト チェックを実行するタイミング
プリフライト チェックは、クラスタを作成する前に早めに実行することをおすすめします。早めにプリフライト チェックを実行すると、vSphere 環境とネットワークが正しく構成されていることが確認できます。
GKE on-prem バージョン 1.2.0-gke.6 を使用している場合は、gkectl check-config
を 2 回実行します。
gkectl check-config --fast
を実行します。gkectl prepare
を実行します。--fast
フラグを指定せずにgkectl check-config
を再度実行します。
2 回実行する理由は、クラスタノードの OS イメージの VM テンプレートを、gkectl prepare
が vSphere 環境にアップロードするためです。この VM テンプレートは、すべての検証セットを実行する前に配置されている必要があります。
GKE On-Prem バージョン 1.2.1 以降では、check-config
コマンド自体が VM テンプレートをアップロードするため、gkectl prepare
を実行する前にすべての検証セットを実行できます。
--fast
フラグを指定せずに、gkectl check-config
を実行します。gkectl prepare
を実行します。
プリフライト チェックでは、ファイルに指定した値が検証されます。構成ファイルに対してプリフライト チェックを実行するために、ファイルのすべてのフィールドを入力する必要はありません。代わりに、フィールドに値を入力するたびに、ファイルを繰り返し検証できます。たとえば、vCenter 構成の検証のみを行いたい場合は、vcenter
フィードのみ入力して、そのフィールドに対してチェックを実行できます。
クラスタの作成後は、GKE On-Prem 構成は変更できなくなるので注意してください。プリフライト チェックを実行することで、クラスタを作成する前に構成の問題を発見して解決できます。
デバッグ用のテスト VM の保存
GKE On-Prem バージョン 1.2.1 以降には、gkectl check-config
コマンドに --cleanup
フラグがあります。
gkectl check-config
が完全な検証セットを実行すると、テスト VM と関連する SSH 認証鍵を作成します。デバッグ用にテスト VM と SSH 認証鍵を保持するには、--cleanup
に false を設定します。
--cleanup
のデフォルト値は true です。
プリフライト チェックのリスト
プリフライト チェックでは、構成ファイルの各フィールドが検証されます。現在のチェックは次のとおりです。
カテゴリ | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
構成ファイル | 通常は、各フィールドと仕様が正しい形式と値であることを検証します。
| ||||||||||||||||
インターネット | 必要なドメインへのインターネット アクセスを検証します。gkectl を実行している場所に基づいてプロキシ構成を検証します。
|
||||||||||||||||
Google Cloud |
--skip-validation-gcp フラグを指定すると、スキップされます。 | ||||||||||||||||
gcr.io/gke-on-prem-release アクセスへのアクセス |
Container Registry でホストされている GKE On-Prem のコンテナイ メージ レジストリへのアクセスを検証します。
|
||||||||||||||||
Docker レジストリ |
privateregistryconfig 構成されている場合は、Docker レジストリへのアクセスを検証します。
|
||||||||||||||||
vCenter | すべての vcenter フィールドが存在することを確認し、以下についてもチェックします。
|
||||||||||||||||
ロードバランサ | 負荷分散の構成を検証します。
--skip-validation-load-balancer フラグを指定すると、スキップされます。 |
||||||||||||||||
ネットワーキング | 指定された CIDR 範囲、VIP、静的 IP(構成されている場合)が使用可能かどうかを検証します。IP アドレスが重複していないことを確認します。
|
||||||||||||||||
DNS | 指定された DNS サーバーが使用可能であることを検証します。
|
||||||||||||||||
NTP | 指定されたネットワーク タイム プロトコル(NTP)サーバーが使用可能であることを検証します。
|
||||||||||||||||
VIP | 指定された VIP に ping を送信します。ping が失敗(想定された VIP がまだ取得されていないことを示す)すれば、このチェックは成功です。
|
||||||||||||||||
ノード IP | 指定されたノード IP アドレスに対して ping を送信します。ping が失敗(想定されたノード IP がまだ取得されていないことを示す)すれば、このチェックは成功です。
|
プリフライト チェックの結果
プリフライト チェックでは、次の結果が返されます。
- SUCCESS
- フィールドとその値がチェックに合格しました。
- FAILURE
- フィールドまたはその値、もしくはその両方がチェックに合格しませんでした。チェックが
FAILURE
メッセージを返す場合は、問題を修正してファイルを再度検証してください。 - SKIPPED
チェックが構成に関係ないため、チェックがスキップされました。たとえば、DHCP サーバーを使用している場合、静的 IP 構成のみに関連する DNS のチェックとノード IP のチェックはスキップされます。
検証をスキップするフラグを渡した場合、スキップされたチェックは「SKIPPED」という結果を返しません。検証は実行されず、コマンド出力に何も表示されません。
- UNKNOWN
スキップによりゼロ以外のコードが返されました。「UNKNOWN」の結果は、チェックに失敗したとみなされます。「UNKNOWN」は通常、nslookup の実行に失敗した、または gcloud の実行に失敗したなど、一部のシステム パッケージの実行に失敗したことを示します。
準備中
次のプリフライト チェックは、今後のリリースで追加される予定です。
- NTP サーバー
プリフライト チェックの実行
次のコマンドを実行して、プリフライト チェックを実行します。
gkectl check-config --config [CONFIG]
ここで [CONFIG] は、GKE On-Prem 構成ファイルへのパスです。
高速モードでの実行
負荷分散 VIP やノード IP 検証など、一時的なテスト VM を作成する検証をスキップする「高速モード」でプリフライト チェックを実行することもできます。そのためには、--fast
を渡します。
gkectl check-config --config [CONFIG] --fast
特定の検証をスキップする
フラグを渡すと、DNS、プロキシ、ネットワーキングなどの特定の検証を細かくスキップできます。各スキップフラグの先頭には --skip-[VALIDATION]
が付いています。
使用可能なスキップフラグを確認するには、次のコマンドを実行します。必要に応じて、gkectl check-config リファレンスをご覧ください。
gkectl check-config --help
たとえば、ロードバランサの検証をスキップするには、次のようにします。
gkectl check-config --config my-config.yaml --skip-validation-load-balancer
プリフライト チェックをキャンセルする
プリフライト チェックを開始してキャンセルする場合は、Ctrl+C キーを 2 回押します。プリフライト チェックによってテスト VM が作成された場合、キャンセルすると VM も自動的にクリーンアップされます。
テスト VM のクリーンアップ
テスト VM がプリフライト チェックの完了後に残っている場合は、VM を vCenter から削除できます。テスト VM の名前は次のようになります。
check-config-[dhcp|static]-[random number]
VM を削除するには:
VM を右クリックし、[電源] > [電源を切る] の順にクリックします。
VM の電源が切れたら、VM をもう一度右クリックし、[ディスクから削除] をクリックします。
例
以下に、コマンドの動作例を示します。この例では、検証中の構成は外部 Docker レジストリがなく、統合負荷分散モードと静的 IP を使用しています。
gkectl check-config --config config.yaml - Validation Category: Config Check - [SUCCESS] Config - Validation Category: Internet Access - [SUCCESS] Internet access to required domains - Validation Category: GCP - [SUCCESS] GCP Service - [SUCCESS] GCP Service Account - Validation Category: Docker Registry - [SUCCESS] gcr.io/gke-on-prem-release access - Validation Category: vCenter - [SUCCESS] Credentials - [SUCCESS] Version - [SUCCESS] Datacenter - [SUCCESS] Datastore - [SUCCESS] Data Disk - [SUCCESS] Resource Pool - [SUCCESS] Network - Validation Category: F5 BIG-IP - [SUCCESS] Admin Cluster F5 (credentials, partition and user role) - [SUCCESS] User Cluster F5 (credentials, partition and user role) - Validation Category: Network Configuration - [SUCCESS] CIDR, VIP and static IP (availability and overlapping) - Validation Category: DNS - [SUCCESS] DNS (availability) - Validation Category: VIPs - [SUCCESS] ping (availability) - Validation Category: Node IPs - [SUCCESS] ping (availability) Now running slow validation checks (creates test VM); use flag --fast to disable. - Validation Category: F5 BIG-IP - [SUCCESS] Admin Cluster VIP and NodeIP - [SUCCESS] User Cluster VIP and NodeIP All validation results were SUCCESS.
既知の問題
GKE On-prem バージョン 1.2.0-gke.6 で、ネストされたリソースプールまたはデフォルトのリソースプールを使用している場合、すべての検証を試みると gkectl check-config
が失敗します。ただし、--fast
フラグを渡すことで、より小さい検証セットを行うことができます。
gkectl check-config --config [CONFIG] --fast
この問題は、バージョン 1.2.1 で修正されます。