3.2. 他の CNI プラグインを使用したセカンダリーネットワークの作成
次のセクションでは、セカンダリーネットワーク用の特定の設定フィールドを説明します。
3.2.1. ブリッジセカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、Bridge CNI プラグインの設定パラメーターを説明します。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
|
|
オプション: 使用する仮想ブリッジの名前を指定します。ブリッジインターフェイスがホストに存在しない場合は、これが作成されます。デフォルト値は |
|
|
オプション: 仮想ネットワークから外すトラフィックの IP マスカレードを有効にするには、 |
|
|
オプション: IP アドレスをブリッジに割り当てるには |
|
|
オプション: ブリッジを仮想ネットワークのデフォルトゲートウェイとして設定するには、 |
|
|
オプション: 仮想ブリッジの事前に割り当てられた IP アドレスの割り当てを許可するには、 |
|
|
オプション: 仮想ブリッジが受信時に使用した仮想ポートでイーサネットフレームを送信できるようにするには、 |
|
|
オプション: ブリッジで無作為検出モード (Promiscuous Mode) を有効にするには、 |
|
| オプション: 仮想 LAN (VLAN) タグを整数値として指定します。デフォルトで、VLAN タグは割り当てません。 |
|
|
オプション: デフォルトの VLAN をブリッジに接続されている |
|
|
オプション: VLAN トランクタグを割り当てます。デフォルト値は |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
|
オプション: コンテナー側の |
|
|
オプション: MAC スプーフィングチェックを有効にして、コンテナーから発信されるトラフィックをインターフェイスの MAC アドレスに制限します。デフォルト値は |
VLAN パラメーターは、veth
のホスト側に VLAN タグを設定し、ブリッジインターフェイスで vlan_filtering
機能を有効にします。
L2 ネットワークのアップリンクを設定するには、次のコマンドを使用してアップリンクインターフェイスで VLAN を許可する必要があります。
bridge vlan add vid VLAN_ID dev DEV
$ bridge vlan add vid VLAN_ID dev DEV
3.2.1.1. ブリッジ CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、bridge-net
という名前のセカンダリーネットワークを設定します。
3.2.2. Bond CNI セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bond Container Network Interface (Bond CNI) を使用すると、複数のネットワークインターフェイスを、コンテナー内の 1 つの論理的な "ボンディングされた" インターフェイスに集約できます。これにより、ネットワークの冗長性とフォールトトレランスが向上します。このプラグインを使用したボンディングでは、SR-IOV Virtual Function (VF) のみがサポートされます。
次の表は、Bond CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
| この CNI ネットワークアタッチメント定義に付ける名前を指定します。この名前は、コンテナー内のインターフェイスを識別および参照するために使用されます。 |
|
| CNI 仕様のバージョン。 |
|
|
設定する CNI プラグインの名前を指定します ( |
|
| Address Resolution Protocol (ARP) のリンク監視頻度をミリ秒単位で指定します。このパラメーターは、集約されたインターフェイスの可用性を確認するために、ボンディングインターフェイスが ARP 要求を送信する頻度を定義します。 |
|
| オプション: ボンディングの最大転送単位 (MTU) を指定します。デフォルトは 1500 です。 |
|
|
オプション: ボンディングの |
|
| ボンディングポリシーを指定します。 |
|
|
オプション: ボンディング対象のネットワークインターフェイスが、ボンディングの開始時に、コンテナーのネットワーク namespace 内に直接作成され、使用可能な状態になっていることを前提とするかどうかを指定します。デフォルトの |
|
| ボンディングするインターフェイスを指定します。 |
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
3.2.2.1. Bond CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、bond-net1
という名前のセカンダリーネットワークを設定します。
3.2.3. ホストデバイスのセカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
device
、hwaddr
、kernelpath
、または pciBusID
のいずれかのパラメーターを設定してネットワークデバイスを指定します。
以下のオブジェクトは、ホストデバイス CNI プラグインの設定パラメーターを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
|
オプション: |
|
| オプション: デバイスハードウェアの MAC アドレス。 |
|
|
オプション: |
|
|
オプション: |
3.2.3.1. ホストデバイス設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、hostdev-net
という名前のセカンダリーネットワークを設定します。
3.2.4. VLAN セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、VLAN、vlan
、CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
|
ネットワーク割り当てに関連付けるイーサネットインターフェイス。 |
|
|
|
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
| オプション: 返される DNS 情報。たとえば、DNS ネームサーバーの優先順位順リストなどです。 |
|
|
オプション: |
vlan
設定を持つ NetworkAttachmentDefinition
カスタムリソース定義 (CRD) は、ノード内の単一の Pod でのみ使用できます。CNI プラグインは、同じ master
インターフェイス上に同じ vlanId
を持つ vlan
サブインターフェイスを複数作成できないためです。
3.2.4.1. VLAN 設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、vlan-net
という名前のセカンダリーネットワークを含む vlan
設定を示しています。
3.2.5. IPVLAN セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、IPVLAN、ipvlan
、CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。これは、プラグインが連鎖している場合を除き必要です。 |
|
|
オプション: 仮想ネットワークの操作モードを指定します。この値は、 |
|
|
オプション: ネットワーク割り当てに関連付けるイーサネットインターフェイスを指定します。 |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
|
オプション: |
-
ipvlan
オブジェクトは、仮想インターフェイスがmaster
インターフェイスと通信することを許可しません。したがって、コンテナーはipvlan
インターフェイスを使用してホストに到達できません。コンテナーが、Precision Time Protocol (PTP
) をサポートするネットワークなど、ホストへの接続を提供するネットワークに参加していることを確認してください。 -
1 つの
master
インターフェイスを、macvlan
とipvlan
の両方を同時に使用するように設定することはできません。 -
インターフェイスに依存できない IP 割り当てスキームの場合、
ipvlan
プラグインは、このロジックを処理する以前のプラグインと連鎖させることができます。master
が省略された場合、前の結果にはスレーブにするipvlan
プラグインのインターフェイス名が 1 つ含まれていなければなりません。ipam
が省略された場合、ipvlan
インターフェイスの設定には前の結果が使用されます。
3.2.5.1. IPVLAN CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、ipvlan-net
という名前のセカンダリーネットワークを設定します。
3.2.6. MACVLAN セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のオブジェクトは、MAC 仮想 LAN (MACVLAN) Container Network Interface (CNI) プラグインの設定パラメーターを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
|
|
オプション: 仮想ネットワークのトラフィックの可視性を設定します。 |
|
| オプション: 新しく作成された macvlan インターフェイスに関連付けるホストネットワークインターフェイス。値が指定されていない場合は、デフォルトのルートインターフェイスが使用されます。 |
|
| オプション: 指定された値への最大転送単位 (MTU)。デフォルト値はカーネルによって自動的に設定されます。 |
|
|
オプション: |
プラグイン設定の master
キーを指定する場合は、競合の可能性を回避するために、プライマリーネットワークプラグインに関連付けられているものとは異なる物理ネットワークインターフェイスを使用してください。
3.2.6.1. MACVLAN CNI プラグイン設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、macvlan-net
という名前のセカンダリーネットワークを設定します。
3.2.7. TAP セカンダリーネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のオブジェクトは、TAP CNI プラグインの設定パラメーターを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| オプション: インターフェイスの指定された MAC アドレスを要求します。 |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
| オプション: タップデバイスに関連付ける SELinux コンテキスト。 注記
OpenShift Container Platform には、値 |
|
|
オプション: マルチキューを有効にするには |
|
| オプション: タップデバイスを所有するユーザー。 |
|
| オプション: タップデバイスを所有するグループ。 |
|
| オプション: タップデバイスを既存のブリッジのポートとして設定します。 |
3.2.7.1. Tap 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、mynet
という名前のセカンダリーネットワークを設定します。
3.2.7.2. TAP CNI プラグインの SELinux ブール値の設定 リンクのコピーリンクがクリップボードにコピーされました!
container_t
SELinux コンテキストを使用してタップデバイスを作成するには、Machine Config Operator (MCO) を使用してホスト上で container_use_devices
ブール値を有効にします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。
手順
次の詳細を含む、
setsebool-container-use-devices.yaml
などの名前の新しい YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、新しい
MachineConfig
オブジェクトを作成します。oc apply -f setsebool-container-use-devices.yaml
$ oc apply -f setsebool-container-use-devices.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記MachineConfig
オブジェクトに変更を適用すると、変更が適用された後、影響を受けるすべてのノードが正常に再起動します。この更新が適用されるまでに、時間がかかる場合があります。次のコマンドを実行して、変更が適用されていることを確認します。
oc get machineconfigpools
$ oc get machineconfigpools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 予想される出力
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-e5e0c8e8be9194e7c5a882e047379cfa True False False 3 3 3 0 7d2h worker rendered-worker-d6c9ca107fba6cd76cdcbfcedcafa0f2 True False False 3 3 3 0 7d
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-e5e0c8e8be9194e7c5a882e047379cfa True False False 3 3 3 0 7d2h worker rendered-worker-d6c9ca107fba6cd76cdcbfcedcafa0f2 True False False 3 3 3 0 7d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記すべてのノードが更新され、準備完了状態になっている必要があります。
3.2.8. セカンダリーネットワークで route-override プラグインを使用してルートを設定する リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、route-override
CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
設定する CNI プラグインの名前: |
|
|
オプション: 既存ルートをフラッシュするには |
|
|
オプション: デフォルトルート、つまりゲートウェイルートをフラッシュするには |
|
| オプション: コンテナー namespace から削除するルートのリストを指定します。 |
|
|
オプション: コンテナー namespace に追加するルートのリストを指定します。各ルートは、 |
|
|
オプション: check コマンドをスキップするには、これを |
3.2.8.1. route-override プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
route-override
CNI は、親 CNI と連鎖して使用するように設計された CNI タイプです。独立して動作するのではなく、まず親 CNI を利用してネットワークインターフェイスを作成して IP アドレスを割り当てます。その後、ルーティングルールの変更が可能になります。
次の例では、mymacvlan
という名前のセカンダリーネットワークを設定します。親 CNI は、eth1
にアタッチされたネットワークインターフェイスを作成し、host-local
IPAM を使用して 192.168.1.0/24
の範囲の IP アドレスを割り当てます。これにより route-override
CNI が親 CNI に連結され、既存ルートをフラッシュし、192.168.0.0/24
へのルートを削除し、カスタムゲートウェイを使用して 192.168.0.0/24
の新しいルートを追加することで、ルーティングルールが変更されます。