このドキュメントでは、VMware 用 Google Distributed Cloud(ソフトウェアのみ)でクラスタを作成またはアップグレードするときに実行されるプリフライト チェックについて説明します。
ファイアウォール ルールを確認する
バージョン 1.29 以降では、クラスタの作成、更新、アップグレード時に、サーバーサイドのプリフライト チェックがデフォルトで有効になります。サーバーサイドのプリフライト チェックには、追加のファイアウォール ルールが必要です。管理クラスタのファイアウォール ルールで、[プリフライト チェック] を検索し、必要なファイアウォール ルールがすべて構成されていることを確認します。
gkectl check-config
の実行
gkectl
を使用してクラスタを作成する場合は、gkectl create-config
を実行して構成ファイルを生成します。この構成ファイルに従ってインストールが実行されます。このファイルには、vSphere 環境、ネットワーク、ロードバランサ、クラスタの表示方法についての情報が記述されています。構成ファイルは、管理ワークステーションの作成前または作成後に生成できます。特定のチェックに合格するには、チェックが管理ワークステーションから実行される必要があります。
ご使用の環境とクラスタのニーズに合わせてファイルを変更した後、そのファイルを使用してオンプレミス環境でクラスタを作成します。
gkectl
を使用してクラスタを作成する前に、gkectl check-config
を実行していくつかのプリフライト チェックで構成ファイルを検証します。コマンドが FAILURE
メッセージを返した場合は、問題を修正してファイルを再度検証します。特定の機能の検証で警告メッセージが返された場合、その機能を使用するには、問題の原因を解消する必要があります。
プリフライト チェック モードと検証のスキップ
gkectl check-config
にはデフォルト モードと高速モードがあります。
デフォルト モードでは、コマンドは各フィールドを包括的に検証します。また、デフォルト モードでは、検証の一部として一時的な vSphere 仮想マシン(VM)が作成されます。これにはさらに時間がかかります。
高速モードでは、テスト VM を作成するチェックをスキップし、高速チェックのみを実行します。高速モードを有効にするには、
--fast
フラグを渡します。
特定の検証をスキップするには、gkectl check-config --help
で説明されている他のフラグを渡します。
管理ワークステーションとテスト VM の間のトラフィック
デフォルト モードでは、プリフライト チェックにより、クラスタのテスト VM が作成されます。各テスト VM は、ポート 443 と構成ファイルで指定したノードポートでリッスンする HTTP サーバーを実行します。
複数の IP アドレスがテスト VM に割り当てられます。構成ファイルで、クラスタノードが DHCP サーバーから IP アドレスを取得するよう指定されている場合、プリフライト チェックでは、DHCP サーバーを使用してテスト VM に IP アドレスが割り当てられます。構成ファイルで、クラスタノードに静的 IP アドレスが割り当てられるように指定されている場合、プリフライト チェックでは、IP block ファイルで指定した静的 IP アドレスがテスト VM に割り当てられます。
管理ワークステーションで実行されるプリフライト チェックでは、VM に割り当てられたさまざまな IP アドレスを使用して、HTTP リクエストをテスト VM に送信します。このリクエストは、ポート 443 と、構成ファイルで指定したノードポートに送信されます。
プリフライト チェックを実行するタイミング
プリフライト チェックは、クラスタを作成する前に早めに実行することをおすすめします。早めにプリフライト チェックを実行すると、vSphere 環境とネットワークが正しく構成されていることが確認できます。
バージョン 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 テンプレートは、すべての検証セットを実行する前に配置されている必要があります。
バージョン 1.2.1 以降では、check-config
コマンド自体が VM テンプレートをアップロードするため、gkectl
prepare
を実行する前にすべての検証セットを実行できます。
--fast
フラグを指定せずに、gkectl check-config
を実行します。gkectl prepare
を実行します。
プリフライト チェックでは、ファイルに指定した値が検証されます。構成ファイルに対してプリフライト チェックを実行するために、ファイルのすべてのフィールドを入力する必要はありません。代わりに、フィールドに値を入力するたびに、ファイルを繰り返し検証できます。たとえば、vCenter 構成の検証のみを行う場合は、vcenter
フィールドのみ入力して、そのフィールドに対してチェックを実行できます。
クラスタの作成後に構成の変更はできなくなるので注意してください。プリフライト チェックを実行することで、クラスタを作成する前に構成の問題を発見して解決できます。
デバッグ用のテスト VM の保存
バージョン 1.2.1 以降では、gkectl check-config
コマンドで --cleanup
フラグを使用できます。
gkectl check-config
が完全な検証セットを実行すると、テスト VM と関連する SSH 認証鍵を作成します。デバッグ用にテスト VM と SSH 認証鍵を保持するには、--cleanup
に false を設定します。
--cleanup
のデフォルト値は true です。
プリフライト チェックのリスト
プリフライト チェックでは、構成ファイルの各フィールドが検証されます。現在のチェックは次のとおりです。
カテゴリ | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
構成ファイル | 通常は、各フィールドと仕様が正しい形式と値であることを検証します。
|
||||||||||||||||
インターネット | 必要なドメインへのインターネット アクセスを検証します。gkectl を実行している場所に基づいてプロキシ構成を検証します。
|
||||||||||||||||
OS イメージ | OS イメージが存在していることを検証します。
|
||||||||||||||||
Windows OS のバージョン | Windows OS のバージョンを検証します。 コマンドライン ツール |
||||||||||||||||
クラスタのバージョン | 管理クラスタのバージョン、ユーザー クラスタのバージョン、
|
||||||||||||||||
クラスタの状態 | アップグレードを行う前に、管理クラスタまたはユーザー クラスタが正常であることを検証します。
|
||||||||||||||||
Ingress | アップグレードの前に、ユーザー クラスタに Istio Gateway オブジェクトがあるかどうかを確認します。 | ||||||||||||||||
予約済み IP | 作成とアップグレードのために、十分な IP アドレスが利用可能であることを検証します。
|
||||||||||||||||
Google Cloud |
--skip-validation-gcp フラグを指定すると、スキップされます。 | ||||||||||||||||
gcr.io/gke-on-prem-release へのアクセス |
Container Registry でホストされているコンテナ イメージ レジストリへのアクセスを検証します。
|
||||||||||||||||
Docker レジストリ |
privateregistryconfig 構成されている場合は、Docker レジストリへのアクセスを確認します。
|
||||||||||||||||
vCenter | すべての vcenter フィールドが存在することを確認し、以下についてもチェックします。
|
||||||||||||||||
ストレージ |
| ||||||||||||||||
CSI ワークロード |
vSphere CSI ドライバを使用して動的にプロビジョニングされた PersistentVolume を使用するワークロードをクラスタが正常に実行できることを検証します。 この検証は、アップグレード中に、ツリー内 vSphere ボリュームがあり、vSphere CSI ボリュームがない場合にのみ実行されます。 この検証では、以下を行います。
|
||||||||||||||||
アンチ アフィニティ グループのホスト |
クラスタの
|
||||||||||||||||
ロードバランサ | 負荷分散の構成を検証します。
--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] は構成ファイルのパスです。
高速モードでの実行
負荷分散 VIP やノード IP 検証など、一時的なテスト VM を作成する検証をスキップする「高速モード」でプリフライト チェックを実行することもできます。そのためには、--fast
を渡します。
gkectl check-config --config [CONFIG] --fast
特定の検証をスキップする
フラグを渡すと、DNS、プロキシ、ネットワーキングなどの特定の検証を細かくスキップできます。各スキップフラグの先頭には --skip-[VALIDATION]
が付いています。
使用可能なスキップフラグを確認するには、次のコマンドを実行します。
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 を使用しています。
- 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 - [SUCCESS] VSphere CSI Driver - 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. ... Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere. Creating test VMs with admin cluster configuration... DONE Waiting to get IP addresses from test VMs... DONE Waiting for test VMs to become ready... DONE Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere. Creating test VMs with user cluster configuration... DONE Waiting to get IP addresses from test VMs... DONE Waiting for test VMs to become ready... DONE - Validation Category: F5 BIG-IP - [SUCCESS] Admin Cluster VIP and NodeIP - [SUCCESS] Admin Cluster F5 Access - [SUCCESS] User Cluster VIP and NodeIP - [SUCCESS] User Cluster F5 Access - Validation Category: Internet Access - [SUCCESS] Internet access to required domains - Validation Category: vCenter on test VMs - [SUCCESS] Test VM: VCenter Access and Permission - Validation Category: DNS on test VMs - [SUCCESS] Test VM: DNS Availability - Validation Category: TOD on test VMs - [SUCCESS] Test VM: TOD Availability - Validation Category: Docker Registry - [SUCCESS] gcr.io/gke-on-prem-release access Deleting test VMs with admin cluster configuration... DONE Deleting test VMs with user cluster configuration... DONE
既知の問題
バージョン 1.3.0-gke.16 の場合:
次の両方が当てはまる場合は、プリフライト チェックには高速検証チェック(
gkectl check-config --fast
)を実行する必要があります。プロキシを使用するように Google Distributed Cloud を構成した。
次のいずれかのバンドルをインストールした。
- ダウンロード ページからの
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz
バンドル。 - 管理ワークステーションからの
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz
バンドル。
- ダウンロード ページからの
完全な検証セットを実行できるのは、フルバンドルをインストールした場合のみです。次に例を示します。
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgz
バージョン 1.2.0-gke.6 の場合:
ネストされたリソースプールまたはデフォルトのリソースプールを使用している場合、完全な検証セットを実行しようとすると
gkectl check-config
は失敗します。ただし、--fast
フラグを渡すことで、より小さい検証セットを行うことができます。gkectl check-config --config [CONFIG] --fast