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 アドレスの割り当てを管理します。 |
xmitHashPolicy はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
3.2.2.1. Bond CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例では、bond-net1 という名前のセカンダリーネットワークを設定します。
次の例では、bond-tlb-net という名前のセカンダリーネットワークを、xmitHashPolicy 機能を有効にして設定します。
- 1
- このパラメーターは、ボンディング内の
net1およびnet2アクティブメンバーインターフェイス間で送信ネットワークトラフィックがどのように分散されるかを指定します。ハッシュアルゴリズムは、レイヤー 2 情報 (具体的には送信元および宛先の MAC アドレス) とレイヤー 3 情報 (送信元および宛先の IP アドレスを含む) を組み合わせます。
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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記MachineConfigオブジェクトに変更を適用すると、変更が適用された後、影響を受けるすべてのノードが正常に再起動します。この更新が適用されるまでに、時間がかかる場合があります。次のコマンドを実行して、変更が適用されていることを確認します。
oc get machineconfigpools
$ oc get machineconfigpoolsCopy 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 7dCopy 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 の新しいルートを追加することで、ルーティングルールが変更されます。