5.3.5. NodePool リソースを使用して NVIDIA GPU デバイスをアタッチする
NodePool リソースの nodepool.spec.platform.kubevirt.hostDevices フィールドを設定することで、1 つ以上の NVIDIA グラフィックスプロセッシングユニット (GPU) デバイスをノードプールにアタッチできます。
NVIDIA GPU デバイスをノードプールにアタッチする機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
手順
1 つ以上の GPU デバイスをノードプールにアタッチします。
1 つの GPU デバイスをアタッチするには、次の設定例を使用して
NodePoolリソースを設定します。apiVersion: hypershift.openshift.io/v1beta1 kind: NodePool metadata: name: <hosted_cluster_name>1 namespace: <hosted_cluster_namespace>2 spec: arch: amd64 clusterName: <hosted_cluster_name> management: autoRepair: false upgradeType: Replace nodeDrainTimeout: 0s nodeVolumeDetachTimeout: 0s platform: kubevirt: attachDefaultNetwork: true compute: cores: <cpu>3 memory: <memory>4 hostDevices:5 - count: <count>6 deviceName: <gpu_device_name>7 networkInterfaceMultiqueue: Enable rootVolume: persistent: size: 32Gi type: Persistent type: KubeVirt replicas: <worker_node_count>8 - 1
- ホステッドクラスターの名前を指定します (例:
example)。 - 2
- ホステッドクラスターの namespace の名前を指定します (例:
clusters)。 - 3
- CPU の値を指定します (例:
2)。 - 4
- メモリーの値を指定します (例:
16Gi)。 - 5
hostDevicesフィールドは、ノードプールにアタッチできる各種 GPU デバイスのリストを定義します。- 6
- ノードプール内の各仮想マシンにアタッチする GPU デバイスの数を指定します。たとえば、2 つの GPU デバイスを 3 つのノードプールレプリカにアタッチすると、ノードプール内の 3 つの仮想マシンすべてが 2 つの GPU デバイスにアタッチされます。デフォルトは
1です。 - 7
- GPU デバイス名を指定します (例:
nvidia-a100)。 - 8
- ワーカー数を指定します (例:
3)。
複数の GPU デバイスをアタッチするには、次の設定例を使用して
NodePoolリソースを設定します。apiVersion: hypershift.openshift.io/v1beta1 kind: NodePool metadata: name: <hosted_cluster_name> namespace: <hosted_cluster_namespace> spec: arch: amd64 clusterName: <hosted_cluster_name> management: autoRepair: false upgradeType: Replace nodeDrainTimeout: 0s nodeVolumeDetachTimeout: 0s platform: kubevirt: attachDefaultNetwork: true compute: cores: <cpu> memory: <memory> hostDevices: - count: <count> deviceName: <gpu_device_name> - count: <count> deviceName: <gpu_device_name> - count: <count> deviceName: <gpu_device_name> - count: <count> deviceName: <gpu_device_name> networkInterfaceMultiqueue: Enable rootVolume: persistent: size: 32Gi type: Persistent type: KubeVirt replicas: <worker_node_count>