以前のバージョンの GKE On-Prem のドキュメントを表示しています。最新のドキュメントをご覧ください

プリフライト チェックの実行

このトピックでは、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 回実行します。

  1. gkectl check-config --fast を実行します。

  2. gkectl prepare を実行します。

  3. --fast フラグを指定せずに gkectl check-config を再度実行します。

2 回実行する理由は、クラスタ ノードの OS イメージの VM テンプレートを、gkectl prepare が vSphere 環境にアップロードするためです。この VM テンプレートは、すべての検証セットを実行する前に配置されている必要があります。

GKE on-prem バージョン 1.2.1 以降では、check-config コマンド自体が VM テンプレートをアップロードするため、gkectl prepare を実行する前にすべての検証セットを実行できます。

  1. --fast フラグを指定せずに、gkectl check-config を実行します。

  2. 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 です。

プリフライト チェックのリスト

プリフライト チェックでは、構成ファイルの各フィールドが検証されます。現在のチェックは次のとおりです。

カテゴリ 説明
構成ファイル

通常は、各フィールドと仕様が想定された形式と値であることを検証します。

--skip-validation-config フラグを指定すると、スキップされます。

--skip-validation-proxy フラグを指定すると、proxy フィールドの検証をスキップします。

インターネット

必要なドメインへのインターネット アクセスを検証します。gkectl を実行している場所に基づいてプロキシ構成を検証します。

--skip-validation-internet フラグを指定すると、スキップされます。

Google Cloud
プロジェクト ID
[*].projectid
構成のさまざまなフィールドに指定されたプロジェクト ID を検証します。プロジェクト ID がない場合、検証はスキップされます。
登録サービス アカウント
registerserviceaccountkeypath
サービス アカウントが必要な Cloud IAM ロールを保持していることを検証します。必要な API が有効になっていることを検証します。
接続サービス アカウント
agentserviceaccountkeypath
サービス アカウントが必要な Cloud IAM ロールを保持していることを検証します。必要な API が有効になっていることを検証します。
Google Cloud のオペレーション スイートのサービス アカウント
stackdriver.serviceaccountkeypath
サービス アカウントが必要な Cloud IAM ロールを保持していることを検証します。必要な API が有効になっていることを検証します。
--skip-validation-gcp フラグを指定すると、スキップされます。
gcr.io/gke-on-prem-release アクセスへのアクセス Container Registry でホストされている GKE On-Prem のコンテナイ メージ レジストリへのアクセスを検証します。

--skip-validation-docker フラグによってスキップされます。

Docker レジストリ
privateregistryconfig
構成されている場合は、Docker レジストリへのアクセスを検証します。

--skip-validation-docker フラグを指定すると、スキップされます。

vCenter すべての vcenter フィールドが存在することを確認し、以下についてもチェックします。
認証情報
vcenter.credentials.[*]
指定されたユーザー認証情報を使用して、vCenter Server への認証を検証します。
vSphere のバージョン vSphere がバージョン 6.5 または 6.7 Update 3 であることを確認します。
データセンター
vcenter.datacenter
vSphere データセンターが存在することを検証します。
データストア
vcenter.datastore
vSphere データストアが存在することを検証します。
データディスク
vcenter.datadisk
vSphere 仮想マシン ディスク(VMDK)が、vSphere にまだ存在していないことを確認します。
リソースプール
vcenter.resourcepool
vSphere リソースプールが存在することを検証します。
ネットワーク
vcenter.network
vSphere ネットワークが存在することを検証します。

--skip-validation-infra フラグを指定すると、スキップされます。

ロードバランサ

負荷分散構成を検証します。

  • 負荷分散モードが統合されている場合(lbmode: Integrated)、すべての bigip フィールドが adminclusterusercluster の仕様に存在することを検証します。
  • 負荷分散モードが手動の場合(lbmode: Manual)、すべての manuallbspec フィールドが adminclusterusercluster の仕様に存在することを検証します。
統合された負荷分散
bigip.credentials.[*] F5 BIG-IP 認証情報を検証します。
bigip.partition 指定されたパーティションが存在することを検証します。
F5 BIG-IP ユーザー ロール 指定された F5 BIG-IP ユーザーが管理者またはリソース管理者のロールを持っていることを検証します。
bigip.vips.[*] 指定された VIP を検証します。

--fast フラグまたは --skip-validation-load-balancer フラグを指定すると、スキップされます。

手動負荷分散
ネットワーク構成 VIP、ノード IP などを検証します。

--fast フラグまたは --skip-validation-load-balancer フラグを指定すると、スキップされます。

[*].manuallbspec.[*] 指定されたノードポートを検証します。
--skip-validation-load-balancer フラグを指定すると、スキップされます。
ネットワーキング

指定された CIDR 範囲、VIP、静的 IP(構成されている場合)が使用可能かどうかを検証します。IP アドレスが重複していないことを確認します。

--skip-validation-net-config フラグを指定すると、スキップされます。

DNS

指定された DNS サーバーが使用可能であることを検証します。

--skip-validation-dns フラグを指定すると、スキップされます。

NTP

指定されたネットワーク タイム プロトコル(NTP)サーバーが使用可能であることを検証します。

--skip-validation-tod フラグを指定すると、スキップされます。

VIP

指定された VIP に ping を送信します。ping が失敗(想定された VIP がまだ取得されていないことを示す)すれば、このチェックは成功です。

--skip-validation-vips フラグを指定すると、スキップされます。

ノード IP

指定されたノード IP アドレスに対して ping を送信します。ping が失敗(想定されたノード IP がまだ取得されていないことを示す)すれば、このチェックは成功です。

--skip-validation-node-ips フラグを指定すると、スキップされます。

プリフライト チェックの結果

プリフライト チェックでは、次の結果が返されます。

成功
フィールドとその値がチェックに合格しました。
失敗
フィールドまたはその値、もしくはその両方がチェックに合格しませんでした。チェックが FAILURE メッセージを返す場合は、問題を修正してファイルを再度検証してください。
SKIPPED

チェックが構成に関係ないため、チェックがスキップされました。たとえば、DHCP サーバーを使用している場合、静的 IP 構成のみに関連する DNS のチェックとノード IP のチェックはスキップされます。

検証をスキップするフラグを渡した場合、スキップされたチェックは「SKIPPED」という結果を返しません。検証は実行されず、コマンド出力に何も表示されません。

不明

スキップでゼロ以外のコードが返されました。不明という結果はチェックに失敗したとみなすことができます。不明は通常、チェックでシステム パッケージの実行に失敗したこと(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 が残っている場合は、vCenter から そのVM を削除できます。テスト VM の名前は次のようになります。

check-config-[dhcp|static]-[random number]

VM を削除するには:

  1. VM を右クリックし、[電源] > [電源を切る] の順にクリックします。

  2. 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 で修正される予定です。

次のステップ