3.4. SR-IOV ネットワークの VRF への割り当て
クラスター管理者は、CNI VRF プラグインを使用して、SR-IOV ネットワークインターフェイスを VRF ドメインに割り当てることができます。
これを実行するには、VRF 設定を SriovNetwork リソースのオプションの metaPlugins パラメーターに追加します。
VRF を使用するアプリケーションを特定のデバイスにバインドする必要があります。一般的な使用方法として、ソケットに SO_BINDTODEVICE オプションを使用できます。SO_BINDTODEVICE は、渡されるインターフェイス名で指定されているデバイスにソケットをバインドします (例: eth1)。SO_BINDTODEVICE を使用するには、アプリケーションに CAP_NET_RAW 機能がある必要があります。
ip vrf exec コマンドを使用した VRF の使用は、OpenShift Container Platform Pod ではサポートされません。VRF を使用するには、アプリケーションを VRF インターフェイスに直接バインドします。
3.4.1. CNI VRF プラグインを使用した追加 SR-IOV ネットワーク割り当ての作成 リンクのコピーリンクがクリップボードにコピーされました!
SR-IOV Network Operator は追加ネットワークの定義を管理します。作成する追加ネットワークを指定する場合、SR-IOV Network Operator は NetworkAttachmentDefinition カスタムリソース (CR) を自動的に作成します。
SR-IOV Network Operator が管理する NetworkAttachmentDefinition カスタムリソースは編集しないでください。これを実行すると、追加ネットワークのネットワークトラフィックが中断する可能性があります。
CNI Virtual Routing and Forwarding (VRF) プラグインを使用して追加の SR-IOV ネットワーク割り当てを作成するには、次の手順を実行します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - cluster-admin 権限を持つユーザーとして OpenShift Container Platform クラスターにログインします。
手順
追加の SR-IOV ネットワーク割り当て用の
SriovNetworkカスタムリソース (CR) を作成し、以下のサンプル CR のようにmetaPlugins設定を挿入します。YAML をsriov-network-attachment.yamlファイルとして保存します。apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: example-network namespace: additional-sriov-network-1 spec: ipam: | { "type": "host-local", "subnet": "10.56.217.0/24", "rangeStart": "10.56.217.171", "rangeEnd": "10.56.217.181", "routes": [{ "dst": "0.0.0.0/0" }], "gateway": "10.56.217.1" } vlan: 0 resourceName: intelnics metaPlugins : | { "type": "vrf",1 "vrfname": "example-vrf-name" }ここでは、以下のようになります。
metaPlugins.type-
typeパラメーターをvrfに設定します。 metaPlugins.vrfname-
vrfnameパラメーターで VRF の名前を指定します。インターフェイスが VRF に割り当てられます。Pod 内の VRF の名前を指定しない場合は、SR-IOV Network Operator によって VRF の名前が自動的に生成されます。
SriovNetworkリソースを作成します。$ oc create -f sriov-network-attachment.yaml
検証
以下のコマンドを実行して、SR-IOV Network Operator が
NetworkAttachmentDefinitionCR を作成していることを確認します。予想される出力には、NAD CR の名前と作成後の経過時間 (分) が表示されます。$ oc get network-attachment-definitions -n <namespace><namespace>:<namespace>は、ネットワーク割り当ての設定時に指定した namespace に置き換えます (例:additional-sriov-network-1)。注記SR-IOV Network Operator が CR を作成するまでに遅延が生じる可能性があります。
VRF CNI が正しく設定され、追加の SR-IOV ネットワーク割り当てが接続されていることを確認するには、以下を実行します。
- VRF CNI を使用する SR-IOV ネットワークを作成します。
- ネットワークを Pod に割り当てます。
Pod のネットワーク割り当てが SR-IOV の追加ネットワークに接続されていることを確認します。Pod にリモートシェルログインし、次のコマンドを実行していることを確認します。予想される出力には、VRF インターフェイスの名前とルーティングテーブル内の一意の ID が表示されます。
$ ip vrf show次のコマンドを実行して、VRF インターフェイスがセカンダリーインターフェイスの
masterであることを確認します。出力例には5: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master red state UP modeが示されます。$ ip link