このページでは、Google Virtual NIC(gVNIC)を使用して Google Kubernetes Engine(GKE)クラスタの GPU ノードのネットワーク帯域幅を増やす方法について説明します。
Autopilot クラスタでは、GKE バージョン 1.30.2-gke.1023000 以降を実行するノードに Google Virtual NIC(gVNIC)が自動的にインストールされます。このページの手順は Standard クラスタにのみ適用されます。
CPU ノードの帯域幅を増やすには、Tier-1 帯域幅の有効化を検討してください。
始める前に
作業を始める前に、次のことを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
制限事項
- Compute Engine の制限事項が適用されます。
要件
- GKE ノードでは Container-Optimized OS ノードイメージを使用する必要があります。
gVNIC を有効にする
gVNIC を使用するノードプールのあるクラスタの作成、gVNIC を有効にしたノードプールの作成、gVNIC を使用するためのノードプールの更新のいずれかを行えます。
クラスタの作成
gVNIC を使用するノードプールでクラスタを作成します。
gcloud container clusters create CLUSTER_NAME \
--accelerator type=GPU_TYPE,count=AMOUNT \
--machine-type=MACHINE_TYPE \
--enable-gvnic
次のように置き換えます。
CLUSTER_NAME
: 新しいクラスタの名前。GPU_TYPE
: 使用する GPU アクセラレータのタイプ。例:nvidia-tesla-t4
。AMOUNT
: ノードプール内のノードに接続する GPU の数。MACHINE_TYPE
: 使用するマシンのタイプ。gVNIC は、メモリ最適化マシンタイプではサポートされていません。
ノードプールの作成
gVNIC を使用するノードプールを作成します。
gcloud container node-pools create NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--enable-gvnic
次のように置き換えます。
NODEPOOL_NAME
: 新しいノードプールの名前。CLUSTER_NAME
: 既存のクラスタの名前。
ノードプールの更新
gVNIC を使用するようにノードプールを更新します。
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--enable-gvnic
次のように置き換えます。
NODEPOOL_NAME
: 更新するノードプールの名前CLUSTER_NAME
: 既存のクラスタの名前。
この変更を行うにはノードを再作成する必要があります。これにより、実行中のワークロードが中断する可能性があります。この特定の変更について詳しくは、メンテナンス ポリシーを尊重せずにノードのアップグレード戦略を使用してノードを再作成する手動変更の表で対応する行をご覧ください。ノードの更新の詳細については、ノードの更新による中断の計画をご覧ください。
gVNIC を無効にする
--no-enable-gvnic
フラグを使用してノードプールを更新します。
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-gvnic
この変更を行うにはノードを再作成する必要があります。これにより、実行中のワークロードが中断する可能性があります。この特定の変更について詳しくは、メンテナンス ポリシーを尊重せずにノードのアップグレード戦略を使用してノードを再作成する手動変更の表で対応する行をご覧ください。ノードの更新の詳細については、ノードの更新による中断の計画をご覧ください。
トラブルシューティング
gVNIC のトラブルシューティングについては、Google Virtual NIC のトラブルシューティングをご覧ください。
次のステップ
- ネットワーク ポリシー ロギングを使用して、クラスタのネットワーク ポリシーによって Pod への接続が許可または拒否される時間を記録する。