11.5. SR-IOV イーサネットネットワーク割り当ての設定
クラスター内の Single Root I/O Virtualization (SR-IOV) デバイスのイーサネットネットワーク割り当てを設定できます。
11.5.1. イーサネットデバイス設定オブジェクト
イーサネットネットワークデバイスは、SriovNetwork
オブジェクトを定義して設定できます。
以下の YAML は SriovNetwork
オブジェクトについて説明しています。
apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: <name> 1 namespace: openshift-sriov-network-operator 2 spec: resourceName: <sriov_resource_name> 3 networkNamespace: <target_namespace> 4 vlan: <vlan> 5 spoofChk: "<spoof_check>" 6 ipam: |- 7 {} linkState: <link_state> 8 maxTxRate: <max_tx_rate> 9 minTxRate: <min_tx_rate> 10 vlanQoS: <vlan_qos> 11 trust: "<trust_vf>" 12 capabilities: <capabilities> 13
- 1
- オブジェクトの名前。SR-IOV Network Operator は、同じ名前を持つ
NetworkAttachmentDefinition
オブジェクトを作成します。 - 2
- SR-IOV Network Operator がインストールされている namespace を指定します。
- 3
- この追加ネットワークの SR-IOV ハードウェアを定義する
SriovNetworkNodePolicy
オブジェクトのspec.resourceName
パラメーターの値。 - 4
SriovNetwork
オブジェクトのターゲット namespace。ターゲット namespace の Pod のみを追加ネットワークに割り当てることができます。- 5
- オプション: 追加ネットワークの仮想 LAN (VLAN) ID。整数値は
0
から4095
である必要があります。デフォルト値は0
です。 - 6
- オプション: VF の spoof チェックモード。許可される値は、文字列の
"on"
および"off"
です。重要指定する値を引用符で囲む必要があります。そうしないと、オブジェクトは SR-IOV ネットワーク Operator によって拒否されます。
- 7
- YAML ブロックスケーラーとしての IPAM CNI プラグインの設定オブジェクトプラグインは、割り当て定義についての IP アドレスの割り当てを管理します。
- 8
- オプション: Virtual Function (VF) のリンク状態。許可される値は、
enable
、disable
、およびauto
です。 - 9
- オプション: VF の最大伝送レート (Mbps)。
- 10
- オプション: VF の最小伝送レート (Mbps)。この値は、最大伝送レート以下である必要があります。注記
Intel NIC は
minTxRate
パラメーターをサポートしません。詳細は、BZ#1772847 を参照してください。 - 11
- オプション: VF の IEEE 802.1p 優先度レベル。デフォルト値は
0
です。 - 12
- オプション: VF の信頼モード。許可される値は、文字列の
"on"
および"off"
です。重要指定する値を引用符で囲む必要があります。囲まないと、SR-IOV Network Operator はオブジェクトを拒否します。
- 13
- オプション: この追加ネットワークに設定する機能。IP アドレスのサポートを有効にするには、
"{ "ips": true }"
を指定できます。または、MAC アドレスのサポートを有効にするには"{ "mac": true }"
を指定します。
11.5.1.1. IPAM CNI プラグインの設定
IPAM Container Network Interface (CNI) プラグインは、他の CNI プラグインに IP アドレス管理 (IPAM) を提供します。
IP アドレスの割り当てには、以下の方法を使用できます。
- 静的割り当て。
- DHCP サーバーを使用した動的割り当て。指定する DHCP サーバーは、追加のネットワークから到達可能である必要があります。
- Whereabouts IPAM CNI プラグインを使用した動的割り当て。
11.5.1.1.1. 静的 IP アドレス割り当ての設定
以下の JSON は、静的 IP アドレスの割り当ての設定について説明しています。
静的割り当ての設定
{ "ipam": { "type": "static", "addresses": [ 1 { "address": "<address>", 2 "gateway": "<gateway>" 3 } ], "routes": [ 4 { "dst": "<dst>", 5 "gw": "<gw>" 6 } ], "dns": { 7 "nameservers": ["<nameserver>"], 8 "domain": "<domain>", 9 "search": ["<search_domain>"] 10 } } }
- 1
- 仮想インターフェイスに割り当てる IP アドレスを記述する配列。IPv4 と IPv6 の IP アドレスの両方がサポートされます。
- 2
- 指定する IP アドレスおよびネットワーク接頭辞。たとえば、
10.10.21.10/24
を指定すると、追加のネットワークに IP アドレスの10.10.21.10
が割り当てられ、ネットマスクは255.255.255.0
になります。 - 3
- egress ネットワークトラフィックをルーティングするデフォルトのゲートウェイ。
- 4
- Pod 内で設定するルートを記述する配列。
- 5
- CIDR 形式の IP アドレス範囲 (
192.168.17.0/24
、またはデフォルトルートの0.0.0.0/0
)。 - 6
- ネットワークトラフィックがルーティングされるゲートウェイ。
- 7
- オプション: DNS 設定。
- 8
- DNS クエリーの送信先となる 1 つ以上の IP アドレスの配列。
- 9
- ホスト名に追加するデフォルトのドメイン。たとえば、ドメインが
example.com
に設定されている場合、example-host
の DNS ルックアップクエリーはexample-host.example.com
として書き換えられます。 - 10
- DNS ルックアップのクエリー時に非修飾ホスト名に追加されるドメイン名の配列 (例:
example-host
)。
11.5.1.1.2. 動的 IP アドレス割り当ての設定
以下の JSON は、DHCP を使用した動的 IP アドレスの割り当ての設定について説明しています。
Pod は、作成時に元の DHCP リースを取得します。リースは、クラスターで実行している最小限の DHCP サーバーデプロイメントで定期的に更新する必要があります。
SR-IOV ネットワーク Operator は DHCP サーバーデプロイメントを作成しません。Cluster Network Operator は最小限の DHCP サーバーデプロイメントを作成します。
DHCP サーバーのデプロイメントをトリガーするには、以下の例にあるように Cluster Network Operator 設定を編集して shim ネットワーク割り当てを作成する必要があります。
shim ネットワーク割り当ての定義例
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: ... additionalNetworks: - name: dhcp-shim namespace: default type: Raw rawCNIConfig: |- { "name": "dhcp-shim", "cniVersion": "0.3.1", "type": "bridge", "ipam": { "type": "dhcp" } }
DHCP 割り当ての設定
{ "ipam": { "type": "dhcp" } }
11.5.1.1.3. Whereabouts を使用した動的 IP アドレス割り当ての設定
Whereabouts CNI プラグインにより、DHCP サーバーを使用せずに IP アドレスを追加のネットワークに動的に割り当てることができます。
以下の JSON は、Whereabouts を使用した動的 IP アドレス割り当ての設定について説明しています。
Whereabouts 割り当て設定
{ "ipam": { "type": "whereabouts", "range": "<range>", 1 "exclude": ["<exclude_part>, ..."], 2 } }
11.5.1.1.4. 静的 IP アドレス割り当ての設定例
静的 IP アドレスの割り当てに IPAM を設定することができます。
{ "ipam": { "type": "static", "addresses": [ { "address": "191.168.1.7" } ] } }
11.5.1.1.5. DHCP を使用した動的 IP アドレス割り当ての設定例
DHCP に IPAM を設定できます。
{ "ipam": { "type": "dhcp" } }
11.5.1.1.6. Whereabouts を使用した動的 IP アドレス割り当ての設定例
Whereabouts を使用するように IPAM を設定できます。
{ "ipam": { "type": "whereabouts", "range": "192.0.2.192/27", "exclude": [ "192.0.2.192/30", "192.0.2.196/32" ] } }