第11章 DPU Operator
11.1. DPU Operator リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、DPU Operator をクラスターに追加して、DPU デバイスとネットワークアタッチメントを管理できます。
DPU Operator はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
11.1.1. DPU Operator による DPU のオーケストレーション リンクのコピーリンクがクリップボードにコピーされました!
Data Processing Unit (DPU) Operator を使用すると、ネットワーキング、ストレージ、およびセキュリティーのワークロードをホスト CPU からオフロードする DPU を管理して、クラスターのパフォーマンスと効率を高めることができます。
DPU は、プログラム可能なプロセッサーの一種です。CPU や GPU と並んでコンピューティングを支える 3 つの基本的な柱の 1 つです。CPU が一般的なコンピューティングタスクを処理し、GPU が特定のワークロードを高速化するのに対し、DPU の主なロールは、ネットワーク、ストレージ、セキュリティー機能などのデータ中心のワークロードをオフロードして高速化することです。
DPU は通常、データセンターやクラウド環境で、CPU からこれらのタスクをオフロードすることでパフォーマンスを向上させ、レイテンシーを削減し、セキュリティーを強化するために使用されます。DPU を使用して、特化したワークロードをデータソースのより近くにデプロイすることを可能にし、それによって、より効率的で柔軟なインフラストラクチャーを構築することもできます。
DPU Operator は、DPU デバイスとネットワークアタッチメントを管理します。DPU Operator は、DPU 上で稼働する DPU デーモンを制御する API を介して通信する OpenShift Container Platform コンピュートノードに、DPU デーモンをデプロイします。DPU Operator は、ovn-kube コンポーネントのライフサイクル管理と、DPU における必須のホストネットワーク初期化という役割を担います。
次の表は、現在サポートされている DPU デバイスを示しています。
| ベンター | デバイス | ファームウェア | 説明 |
|---|---|---|---|
| Intel | IPU E2100 | バージョン 2.0.0.11126 以降 | データセンターのホスト CPU からネットワーク、ストレージ、およびセキュリティータスクをオフロードし、効率とパフォーマンスを向上させるように設計された DPU。完全なエンドツーエンドのソリューションをデプロイする手順は、Red Hat ナレッジベースソリューション Accelerating Confidential AI on OpenShift with the Intel E2100 IPU, DPU Operator, and F5 NGINX を参照してください。 |
| Senao | SX904 | 35.23.47.0008 以降 | データセンターやエッジコンピューティング環境のホスト CPU からコンピュートとネットワークサービスをオフロードし、ワークロードの効率と分離を向上させるように設計された SmartNIC。 |
| Marvell | Marvell Octeon 10 CN106 | SDK12.25.01 以降 | データセンターやエッジコンピューティング環境のホスト CPU から高速データ処理を必要とするワークロードをオフロードし、パフォーマンスとエネルギー効率を高めるように設計された DPU。 |
NVIDIA BlueField-3 はサポートされていません。
11.1.2. DPU Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
ホストクラスターと DPU クラスターの両方に Data Processing Unit (DPU) Operator をインストールし、CLI または Web コンソールを使用してデバイスのライフサイクルとネットワークアタッチメントを管理できます。
クラスター管理者は、OpenShift Container Platform CLI または Web コンソールを使用して、ホストクラスターおよびすべての DPU クラスターに DPU Operator をインストールできます。DPU Operator は、サポートされているすべての DPU のライフサイクル、DPU デバイス、およびネットワークアタッチメントを管理します。
ホストクラスターと各 DPU クラスターに DPU Operator をインストールする必要があります。
11.1.2.1. CLI を使用して DPU Operator をインストールする リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して DPU Operator をインストールできます。DPU Operator を使用すると、ホストクラスターで DPU デバイス管理を設定するときにインストールプロセスを単純化できます。
クラスター管理者は、CLI を使用して DPU Operator をインストールできます。
DPU クラスターに DPU Operator をインストールするには、CLI を使用する必要があります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つアカウントがある。
手順
次のコマンドを入力して、
openshift-dpu-operatornamespace を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
OperatorGroupカスタムリソース (CR) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、DPU Operator の
SubscriptionCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Operator がインストールされていることを確認するには、次のコマンドを入力し、Operator に対して出力に
Succeededと表示されていることを確認します。oc get csv -n openshift-dpu-operator \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get csv -n openshift-dpu-operator \ -o custom-columns=Name:.metadata.name,Phase:.status.phaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-dpu-operatorプロジェクトに変更します。oc project openshift-dpu-operator
$ oc project openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、DPU Operator が実行されていることを確認します。
oc get pods -n openshift-dpu-operator
$ oc get pods -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE dpu-operator-controller-manager-6b7bbb5db8-7lvkj 2/2 Running 0 2m9s
NAME READY STATUS RESTARTS AGE dpu-operator-controller-manager-6b7bbb5db8-7lvkj 2/2 Running 0 2m9sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.2.2. Web コンソールを使用して DPU Operator をインストールする リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して DPU Operator をインストールできます。DPU Operator を使用すると、ホストクラスターで DPU デバイス管理を設定するときにインストールプロセスを単純化できます。
クラスター管理者は、Web コンソールを使用して DPU Operator をインストールできます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つアカウントがある。
手順
-
OpenShift Container Platform Web コンソールで、Ecosystem
Software Catalog をクリックします。 - 利用可能な Operator のリストから DPU Operator を選択してから Install をクリックします。
Install Operator ページの Installed Namespace で、Operator recommended Namespace オプションを選択します。アクションは不要です。
- Install をクリックします。
検証
-
Ecosystem
Installed Operators ページに移動します。 openshift-dpu-operator プロジェクトに DPU Operator がリストされており、その Status が InstallSucceeded であることを確認します。
注記インストール時に、Operator は Failed ステータスを表示する可能性があります。インストールが後に InstallSucceeded メッセージを出して正常に実行される場合は、Failed メッセージを無視できます。
トラブルシューティング
- Operator Subscriptions および Install Plans タブで、Status の下の失敗またはエラーの有無を確認します。
-
Workloads
Pods ページに移動し、 openshift-dpu-operatorプロジェクトで Pod のログを確認します。 YAML ファイルの namespace を確認してください。アノテーションが抜けている場合は、次のコマンドを使用して、アノテーション
workload.openshift.io/allowed=managementを Operator namespace に追加できます。oc annotate ns/openshift-dpu-operator workload.openshift.io/allowed=management
$ oc annotate ns/openshift-dpu-operator workload.openshift.io/allowed=managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記シングルノード OpenShift クラスターの場合は、namespace にアノテーション
workload.openshift.io/allowed=managementが必要です。
11.1.3. DPU Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
インストール後に DPU Operator を設定して、デュアルクラスターとシングルクラスターの両方のデプロイメントモードで DPU デバイスとネットワークアタッチメントの管理を有効にできます。
クラスター内の DPU デバイスとネットワークアタッチメントを管理するように DPU Operator を設定できます。
DPU Operator を設定するには、次の手順に従います。
手順
デプロイメントモードに基づき、
DpuOperatorConfigカスタムリソース (CR) を作成します。-
デュアルクラスターデプロイメント: ホスト OpenShift Container Platform クラスターと、各 Red Hat build of MicroShift (MicroShift) DPU クラスターの両方に、
DpuOperatorConfigCR を作成する必要があります。 シングルクラスターデプロイメント: このデプロイメントでは、標準の OpenShift Container Platform クラスターを使用します。このクラスターでは、
DpuOperatorConfigCR を 1 回だけ作成する必要があります。CR の内容はすべてのクラスターで同じです。
-
デュアルクラスターデプロイメント: ホスト OpenShift Container Platform クラスターと、各 Red Hat build of MicroShift (MicroShift) DPU クラスターの両方に、
次の YAML を使用して、
dpu-operator-config.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
metadata.name: カスタムリソースの名前を指定します。これはdpu-operator-configである必要があります。 -
spec.logLevel: Operator コンテナーログに任意のログ詳細レベルを設定します。値のデフォルト設定は0です。
-
次のコマンドを実行して、リソースを作成します。
oc apply -f dpu-operator-config.yaml
$ oc apply -f dpu-operator-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow DPU が接続されている、あるいは DPU として機能している、そのいずれかに該当するすべてのノードにラベルを付けます。次のコマンドを実行してこのラベルを適用できます。
oc label node <node_name> dpu=true
$ oc label node <node_name> dpu=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
node_nameノードの名前を参照します (例:
worker-1)。注記DPU と互換性のあるクラスターは、次の 2 つの方法でデプロイできます。
-
デュアルクラスターデプロイメント: ホスト上で実行される OpenShift Container Platform と、DPU 上で実行される Red Hat build of MicroShift (MicroShift) で構成されます。このモードでは、Red Hat build of MicroShift (MicroShift) インスタンスも DPU Operator をデプロイする必要があり、ノードに
dpu=trueのラベルを設定する必要があります。 -
シングルクラスターデプロイメント: DPU がメインクラスターに統合されているホスト上で実行される OpenShift Container Platform のみで構成されます。DPU では、DPU がインストールされているホストノードと DPU ノード自体の両方に
dpu=trueのラベルが必要です。DPU Operator は、ノードが DPU として実行されているか、DPU が割り当てられたホストとして実行されているかを自動的に検出します。
-
デュアルクラスターデプロイメント: ホスト上で実行される OpenShift Container Platform と、DPU 上で実行される Red Hat build of MicroShift (MicroShift) で構成されます。このモードでは、Red Hat build of MicroShift (MicroShift) インスタンスも DPU Operator をデプロイする必要があり、ノードに
11.1.4. DPU を搭載したホスト上でワークロードを実行する リンクのコピーリンクがクリップボードにコピーされました!
DPU を搭載したホストにワークロードをデプロイすると、特殊なインフラストラクチャータスクをオフロードし、ホストの CPU リソースを解放しながらパフォーマンスを高めることができます。
DPU でワークロードを実行すると、ネットワーク、セキュリティー、ストレージなどの特殊なインフラストラクチャータスクを専用の処理ユニットにオフロードできるようになります。これにより、パフォーマンスが向上し、インフラストラクチャーとアプリケーションのワークロード間のセキュリティー境界が強化され、ホストの CPU リソースが解放されます。
DPU を搭載したホストにワークロードをデプロイするには、次の手順に従います。これは標準的なデプロイメントモデルで、アプリケーションはホストの x86 CPU 上で実行されますが、ネットワークの高速化とオフロードのために DPU が使用されます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つアカウントが利用可能である。 - DPU Operator がインストールされている。
手順
次の YAML を使用して、ホスト側のワーカーノードで実行するように設計されたサンプルワークロードを作成します。ファイルを
workload-host.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec.nodeSelector: ノードセレクターは、DPU リソースを持つノード上の Pod をスケジュールします。kubernetes.io/hostnameなどの標準の Kubernetes セレクターを使用して、サンプル YAML に示すように、特定のノードをターゲットにすることができます。注記柔軟なスケジューリングのために、DPU Operator はラベル dpu.config.openshift.io/dpuside: "dpu-host" を作成します。このラベルにより、デフォルトのスケジューラーは、DPU を同さいした任意のホストにワークロードを配置できます。ワークロードは自動的にその DPU セカンダリーネットワークに参加します。ノードのラベルが
dpu.config.openshift.io/dpuside: "dpu"の場合、そのノードが DPU であることを示しています。DPU Operator は、dpu.config.openshift.io/dpusideラベルの作成と管理を行います。次のコマンドを実行して、ワークロードを作成します。
oc apply -f workload-host.yaml
$ oc apply -f workload-host.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.5. DPU でワークロードを実行する リンクのコピーリンクがクリップボードにコピーされました!
ネットワークワークロードを DPU に直接デプロイすることで、パフォーマンスの向上、セキュリティー分離の強化、ホスト CPU 使用率の削減を実現できます。
DPU は、セキュリティー機能や仮想化アプライアンスなどのネットワークワークロードをオフロードして、パフォーマンスの向上、セキュリティー分離の強化、ホスト CPU リソースの解放を行います。
シンプルな Pod を DPU に直接デプロイするには、次の手順に従います。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つアカウントがある。 - DPU Operator をインストールします。
手順
次のサンプル YAML ファイルを
dpu-pod.yamlとして保存します。これは、Kubernetes のデフォルトスケジューラーによって DPU ノードに直接スケジュールされる単純な Pod の例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
metadata.name.annotations.k8s.v1.cni.cncf.io/networks:dpunfcni-confの値は、NetworkAttachmentDefinitionリソースの名前を指定します。DPU Operator は、インストール中にこのリソースを作成して、DPU ネットワーキングを設定します。 -
spec.nodeSelector:nodeSelectorは、このワークロードをスケジュールするためのプライマリーメカニズムです。DPU Operator は、dpu.config.openshift.io/dpuside: "dpu"ラベルを作成して管理します。このラベルにより、Pod は確実に DPU の処理ユニットに直接スケジュールされます。 -
spec.containers.name: コンテナーの名前。 -
spec.containers.image: プルして実行するコンテナーイメージ。
-
以下のコマンドを実行して Pod を作成します。
oc apply -f dpu-pod.yaml
$ oc apply -f dpu-pod.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Pod のステータスを確認します。
oc get pods -n openshift-dpu-operator
$ oc get pods -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のステータスが
Runningであることを確認します。
11.1.6. DPU ステータスの監視 リンクのコピーリンクがクリップボードにコピーされました!
DPU インフラストラクチャーのステータスを監視して、クラスター全体の DPU デバイスの現在の状態と健全性を確認できます。
DPU ステータスを監視して、DPU インフラストラクチャーの現在の状態を確認できます。
oc get dpu コマンドは、DPU インフラストラクチャーの現在の状態を示します。さまざまなカードのステータスを監視するには、次の手順に従ってください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つアカウントが利用可能である。 - DPU Operator がインストールされている。
手順
次のコマンドを実行して、ノードの全体的な健全性を確認します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例では、クラスター内のすべてのノードとそのステータスのリストが提供されます。すべてのノードが
Ready状態であることを確認してから続行してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力には、3 つのマスターノードと、worker-host の接頭辞 (例:
worker-host-ipu-219) で識別される 3 つのワーカーノードが表示されます。各ワーカーノードには、ocpcluster-dpu の接頭辞で識別される DPU (例:ocpcluster-dpu-ipu-219) が含まれます。次のコマンドを実行して、DPU のステータスを報告します。
oc get dpu
$ oc get dpuCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例では、検出された DPU のリストが提供されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
DPU PRODUCT: DPU のベンダーまたはタイプ (Intel や Marvell など) が表示されます。 -
DPU SIDE: DPU がホスト側 (false) と DPU 側 (true) のどちらで動作しているか示します。物理 DPU はそれぞれ 2 回表示されます。 -
MODE NAME: DPU が配置されているノードの名前。これは、falseエントリーの場合はホストワーカーノード、trueエントリーの場合は DPU ノードです。 STATUS: DPU が正しく機能しているか (True)、問題があるか (False) を示します。注記ステータスの詳細を取得するには、
oc get dpu -o yamlを実行します。
-
11.1.7. DPU Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
DPU デバイスの管理が不要になった場合は、まずすべてのワークロードが削除されたことを確認してから、クラスターから DPU Operator をアンインストールできます。
DPU Operator をアンインストールするには、まず実行中の DPU ワークロードを削除する必要があります。DPU Operator をアンインストールするには、次の手順に従います。
前提条件
-
cluster-admin権限を持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 - DPU Operator がインストールされている。
手順
次のコマンドを実行して作成された
DpuOperatorConfigCR を削除します。oc delete DpuOperatorConfig dpu-operator-config
$ oc delete DpuOperatorConfig dpu-operator-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、DPU Operator のインストールに使用されたサブスクリプションを削除します。
oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operator
$ oc delete Subscription openshift-dpu-operator-subscription -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、作成された
OperatorGroupリソースを削除します。oc delete OperatorGroup dpu-operators -n openshift-dpu-operator
$ oc delete OperatorGroup dpu-operators -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のように DPU Operator をアンインストールします。
次のコマンドを実行して、インストールされている Operator を確認します。
oc get csv -n openshift-dpu-operator
$ oc get csv -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE dpu-operator.v4.20.0-202503130333 DPU Operator 4.20.0-202503130333 Failed
NAME DISPLAY VERSION REPLACES PHASE dpu-operator.v4.20.0-202503130333 DPU Operator 4.20.0-202503130333 FailedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して DPU Operator を削除します。
oc delete csv dpu-operator.v4.20.0-202503130333 -n openshift-dpu-operator
$ oc delete csv dpu-operator.v4.20.0-202503130333 -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、DPU Operator 用に作成された namespace を削除します。
oc delete namespace openshift-dpu-operator
$ oc delete namespace openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、DPU Operator がアンインストールされていることを確認します。コマンドが成功した場合は、たとえば
No resources found in openshift-dpu-operator namespaceが出力されます。oc get csv -n openshift-dpu-operator
$ oc get csv -n openshift-dpu-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow