GKE on VMware の更新で問題が発生した場合、以降のセクションのトラブルシューティングが役立つことがあります。更新できる設定の詳細については、クラスタで更新できるものとできないものをご覧ください。
さらにサポートが必要な場合は、Google サポートにお問い合わせください。
更新のタイムアウト
更新のタイムアウトは、更新するリソースに基づいて動的に計算されます。ただし、計算は常に正確であるとは限りません。更新がタイムアウトすると、次のようなエラーが表示されます。
ユーザー クラスタ内:
Failed to update the cluster:...timed out waiting for the condition...
管理クラスタ内:
Failed to update the admin cluster:...timed out waiting for the condition...
このような種類のタイムアウト エラーは無視して、更新コマンドを再試行できます。コマンドを再試行しても同じエラー メッセージで再びタイムアウトした場合は、Google サポートにご連絡ください。
複数の変更が含まれる更新
gkectl update admin
コマンドと gkectl update cluster
コマンドでは、1 つのコマンドで複数の設定を更新することはできません。構成ファイルに複数の設定の変更がある差分があり、次の例のようなエラーが返されます。
Update summary for cluster X:
antiAffinityGroups: enabled to be set to true from false &config.AAGSpec{
- Enabled: false,
+ Enabled: true,
}
user master cpu to be set to 5 from 4 config.NodePoolProps{
Role: "master",
MachineType: "standard-master",
- CPUs: 4,
+ CPUs: 5,
MemoryMB: 8192,
Replicas: 3,
... // 2 identical fields
Labels: nil,
NodeTaints: nil,
- Vsphere: nil,
&config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
+ Vsphere: nil,
BootDiskSizeGB: nil,
OSImageType: "",
... // 5 identical fields
}
Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time
このエラーは、次のようなさまざまな理由で発生する可能性があります。
- 誤りや構成ミス。
- 構成差分の前に
gkectl upgrade
を実行し、変更が適用されると想定した。gkectl upgrade
では、バージョン バンプ以外の構成の差分は適用されません。
- 以前に別の機能更新の構成を編集したもののい、
gkectl update
コマンドを実行するのを忘れた。
この動作が発生した場合は、エラー メッセージの差分を確認し、複数の gkectl update
コマンドで必要な設定を 1 つずつ更新します。変更を特定するには、gkectl get-config
を使用してクラスタから構成ファイルを生成し、既存の状態と構成を表示します。
サポートされていない変更
gkectl update cluster
コマンドと gkectl update admin
コマンドは、サポートされていない変更を無視し、次のようなエラー メッセージを表示します。
detected unsupported changes: (-current +desired)
...
- AdvancedNetworking: &true,
+ AdvancedNetworking: &false,
...
, which will be ignored
この動作が発生した場合は、エラー メッセージの差分を確認し、次のアクションを行います。
- 変更が意図したものでない場合は、構成 YAML ファイルを編集し、意図した正しい変更のみを使用して更新します。
- 上記の例で、
AdvancedNetworking
を無効にする意図がなかった場合、構成ファイルの YAML ファイルでadvancedNetworking: true
を設定します。
- 上記の例で、
- 変更が意図したものである場合、エラーは変更がサポートされていないことを示します。次のいずれかの操作を行います。
- 必要に応じてクラスタを再作成します。
- Google サポートにご連絡ください。
OS イメージが存在しません
次の例のような OS Images
プリフライト チェックに失敗すると、gkectl update cluster
コマンドと gkectl update admin
コマンドが失敗することがあります。
ユーザー クラスタ内:
- Validation Category: OS Images - [FAILURE] User cluster OS images exist: os images [xxxx] don't exist, please run `gkectl prepare` to upload os images.
管理クラスタ内:
- Validation Category: OS Images - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist, please run `gkectl prepare` to upload os images.
このエラーは、定期的なクリーンアップ ジョブなど、vCenter 環境で OS イメージが予期せず削除された場合に発生することがあります。
インポート OS イメージを再インポートするには、gkectl prepare
コマンドを実行します。詳細と完全な gkectl prepare
コマンドについては、OS イメージを vSphere にインポートする方法をご覧ください。
新しいノードプール用のデータストアの空き容量が不足している
新しいノードプールを追加すると、次の例のような VSphere Datastore FreeSpace
プリフライト チェック エラーで gkectl update cluster
コマンドが失敗することがあります。
- [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
FreeSpace, requires at least xxx GB
この失敗は、新しいノードプールを実行するための十分な空き容量がデータストアにないことを示します。次のオプションのいずれかを使用すると、オペレーションを成功させるためのスペースを確保できます。
- データストアの空き容量を増やします。
- ノードプールに別の
nodePools[].vsphere.datastore
データストアを構成します。
次のステップ
さらにサポートが必要な場合は、Google サポートにお問い合わせください。