This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.21.12. ハードウェアオフロードの設定
クラスター管理者は、互換性のあるノードでハードウェアオフロードを設定して、データ処理パフォーマンスを向上させ、ホスト CPU の負荷を軽減できます。
21.12.1. ハードウェアのオフロードについて リンクのコピーリンクがクリップボードにコピーされました!
Open vSwitch ハードウェアオフロードは、ネットワークタスクを CPU から迂回させ、ネットワークインターフェイスコントローラー上の専用プロセッサーにオフロードすることにより、ネットワークタスクを処理する方法です。その結果、クラスターは、データ転送速度の高速化、CPU ワークロードの削減、およびコンピューティングコストの削減の恩恵を受けることができます。
この機能の重要な要素は、SmartNIC と呼ばれる最新クラスのネットワークインターフェイスコントローラーです。SmartNIC は、計算量の多いネットワーク処理タスクを処理できるネットワークインターフェイスコントローラーです。専用のグラフィックカードがグラフィックパフォーマンスを向上させるのと同じように、SmartNIC はネットワークパフォーマンスを向上させることができます。いずれの場合も、専用プロセッサーにより、特定のタイプの処理タスクのパフォーマンスが向上します。
OpenShift Container Platform では、互換性のある SmartNIC を持つベアメタルノードのハードウェアオフロードを設定できます。ハードウェアオフロードは、SR-IOV Network Operator によって設定および有効化されます。
ハードウェアのオフロードは、すべてのワークロードまたはアプリケーションタイプと互換性があるわけではありません。次の 2 つの通信タイプのみがサポートされています。
- pod-to-pod
- pod-to-service。サービスは通常の Pod に基づく ClusterIP サービスです。
すべての場合において、ハードウェアのオフロードは、それらの Pod とサービスが互換性のある SmartNIC を持つノードに割り当てられている場合にのみ行われます。たとえば、ハードウェアをオフロードしているノードの Pod が、通常のノードのサービスと通信しようとしているとします。通常のノードでは、すべての処理がカーネルで行われるため、Pod からサービスへの通信の全体的なパフォーマンスは、その通常のノードの最大パフォーマンスに制限されます。ハードウェアオフロードは、DPDK アプリケーションと互換性がありません。
ノードでのハードウェアのオフロードを有効にし、使用する Pod を設定しないと、Pod トラフィックのスループットパフォーマンスが低下する可能性があります。OpenShift Container Platform で管理される Pod のハードウェアオフロードを設定することはできません。
21.12.2. サポートされるデバイス リンクのコピーリンクがクリップボードにコピーされました!
ハードウェアオフロードは、次のネットワークインターフェイスコントローラーでサポートされています。
製造元 | モデル | ベンダー ID | デバイス ID |
---|---|---|---|
Mellanox | MT27800 Family [ConnectX‑5] | 15b3 | 1017 |
Mellanox | MT28880 Family [ConnectX‑5 Ex] | 15b3 | 1019 |
21.12.3. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- クラスターに、ハードウェアのオフロードがサポートされているネットワークインターフェイスコントローラーを備えたベアメタルマシンが少なくとも 1 台ある。
- SR-IOV ネットワークオペレーターをインストールしています。
- クラスターは、OVN-Kubernetes CNI を使用します。
-
OVN-Kubernetes CNI 設定では、
gatewayConfig.routingViaHost
フィールドがfalse
に設定されています。
21.12.4. ハードウェアオフロード用のマシン設定プールの設定 リンクのコピーリンクがクリップボードにコピーされました!
ハードウェアオフロードを有効にするには、最初に専用のマシン設定プールを作成し、SR-IOV Network Operator と連携するように設定する必要があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
ハードウェアオフロードを使用するマシンのマシン設定プールを作成します。
次の例のようなコンテンツを含む
mcp-offloading.yaml
などのファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow マシン設定プールの設定を適用します。
oc create -f mcp-offloading.yaml
$ oc create -f mcp-offloading.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
マシン設定プールにノードを追加します。プールのノードロールラベルで各ノードにラベルを付けます。
oc label node worker-2 node-role.kubernetes.io/mcp-offloading=""
$ oc label node worker-2 node-role.kubernetes.io/mcp-offloading=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 新しいプールが作成されたことを確認するには、次のコマンドを実行します。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このマシン設定プールを
SriovNetworkPoolConfig
カスタムリソースに追加します。次の例のようなコンテンツを含むファイル (
sriov-pool-config.yaml
など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ハードウェアオフロード用のマシン設定プールの名前。
設定を適用します。
oc create -f <SriovNetworkPoolConfig_name>.yaml
$ oc create -f <SriovNetworkPoolConfig_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記SriovNetworkPoolConfig
オブジェクトで指定された設定を適用すると、SR-IOV Operator は、マシン設定プール内のノードをドレインして再起動します。設定の変更が適用されるまでに数分かかる場合があります。
21.12.5. SR-IOV ネットワークノードポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
SR-IOV ネットワークノードポリシーを作成することにより、ノードの SR-IOV ネットワークデバイス設定を作成できます。ハードウェアオフロードを有効にするには、値 "switchdev"
を使用して .spec.eSwitchMode
フィールドを定義する必要があります。
次の手順では、ハードウェアをオフロードするネットワークインターフェイスコントローラー用の SR-IOV インターフェイスを作成します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次の例のようなコンテンツを含むファイル (
sriov-node-policy.yaml
など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <.> カスタムリソースオブジェクトの名前。<.> 必須。ハードウェアのオフロードは
vfio-pci
ではサポートされていません。<.> 必須。ポリシーの設定を適用します。
oc create -f sriov-node-policy.yaml
$ oc create -f sriov-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記SriovNetworkPoolConfig
オブジェクトで指定された設定を適用すると、SR-IOV Operator は、マシン設定プール内のノードをドレインして再起動します。設定の変更が適用されるまでに数分かかる場合があります。
21.12.5.1. OpenStack の SR-IOV ネットワークノードポリシーの例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、Red Hat OpenStack Platform (RHOSP) でハードウェアオフロードを使用するネットワークインターフェイスコントローラー (NIC) の SR-IOV インターフェイスについて説明します。
RHOSP でのハードウェアオフロードを備えた NIC の SR-IOV インターフェイス
21.12.6. ネットワーク接続定義の作成 リンクのコピーリンクがクリップボードにコピーされました!
マシン設定プールと SR-IOV ネットワークノードポリシーを定義した後、指定したネットワークインターフェイスカードのネットワーク接続定義を作成できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次の例のようなコンテンツを含むファイル (
net-attach-def.yaml
など) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <.> ネットワーク接続定義の名前。<.> ネットワーク接続定義の namespace。<.> これは、
SriovNetworkNodePolicy
オブジェクトで指定したspec.resourceName
フィールドの値です。ネットワーク接続定義の設定を適用します。
oc create -f net-attach-def.yaml
$ oc create -f net-attach-def.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、新しい定義が存在するかどうかを確認します。
oc get net-attach-def -A
$ oc get net-attach-def -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME AGE net-attach-def net-attach-def 43h
NAMESPACE NAME AGE net-attach-def net-attach-def 43h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
21.12.7. ネットワーク接続定義を Pod へ追加 リンクのコピーリンクがクリップボードにコピーされました!
マシン設定プール、SriovNetworkPoolConfig
および SriovNetworkNodePolicy
カスタムリソース、およびネットワーク接続定義を作成した後、ネットワーク接続定義を Pod 仕様に追加することにより、これらの設定を Pod に適用できます。
手順
Pod 仕様で、
.metadata.annotations.k8s.v1.cni.cncf.io/networks
フィールドを追加し、ハードウェアオフロード用に作成したネットワーク接続定義を指定します。.... metadata: annotations: v1.multus-cni.io/default-network: net-attach-def/net-attach-def <.>
.... metadata: annotations: v1.multus-cni.io/default-network: net-attach-def/net-attach-def <.>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <.> 値は、ハードウェアオフロード用に作成したネットワーク接続定義の名前と namespace である必要があります。