17.2. 追加のネットワークの設定
クラスター管理者は、クラスターの追加のネットワークを設定できます。以下のネットワークタイプに対応しています。
17.2.1. 追加のネットワークを管理するためのアプローチ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform で追加のネットワークのライフサイクルを管理するには、Cluster Network Operator (CNO) 設定を変更するか、YAML マニフェストを適用します。各アプローチは同時に使用できず、追加のネットワークを管理する場合に 1 つのアプローチしか使用できません。どちらのアプローチでも、追加のネットワークは、お客様が設定した Container Network Interface (CNI) プラグインによって管理されます。2 つの異なるアプローチを以下にまとめます。
-
Cluster Network Operator (CNO) 設定の変更: CNO を介して追加のネットワークを設定できるのは、クラスター管理者だけです。CNO は
NetworkAttachmentDefinition
オブジェクトを自動的に作成および管理します。このアプローチを使用すると、install-config
の設定により、インストール時にNetworkAttachmentDefinition
オブジェクトを定義できます。 -
YAML マニフェストを適用する:
NetworkAttachmentDefinition
オブジェクトを作成することで、追加のネットワークを直接管理できます。このアプローチでは、CNO 設定を変更する場合と比較して、設定に関してよりきめ細かい制御と柔軟性が得られます。
OVN Kubernetes を使用して、Red Hat OpenStack Platform (RHOSP) に複数のネットワークインターフェイスを持つ OpenShift Container Platform ノードをデプロイすると、セカンダリーインターフェイスの DNS 設定がプライマリーインターフェイスの DNS 設定よりも優先される場合があります。この場合、セカンダリーインターフェイスに接続されているサブネット ID の DNS ネームサーバーを削除してください。
openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
$ openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
17.2.2. 追加のネットワークの IP アドレス割り当て リンクのコピーリンクがクリップボードにコピーされました!
追加のネットワークでは、Dynamic Host Configuration Protocol (DHCP) や静的割り当てなど、さまざまな割り当て方法をサポートする IP アドレス管理 (IPAM) CNI プラグインを使用して IP アドレスを割り当てることができます。
IP アドレスの動的割り当てを担当する DHCP IPAM CNI プラグインは、2 つの異なるコンポーネントを使用して動作します。
- CNI プラグイン: Kubernetes ネットワークスタックと統合して IP アドレスを要求および解放する役割を担います。
- DHCP IPAM CNI デーモン: 環境内の既存の DHCP サーバーと連携して IP アドレス割り当て要求を処理する DHCP イベントのリスナー。このデーモン自体は DHCP サーバーでは ありません。
IPAM 設定で type: dhcp
を必要とするネットワークの場合は、次の点を確認してください。
- DHCP サーバーが環境内で利用可能かつ実行されている。DHCP サーバーはクラスターの外部にあり、お客様の既存のネットワークインフラストラクチャーの一部である必要があります。
- DHCP サーバーが、ノードに IP アドレスを提供するように適切に設定されている。
環境内で DHCP サーバーが利用可能でない場合は、代わりに Whereabouts IPAM CNI プラグインを使用することを推奨します。Whereabouts CNI は、外部 DHCP サーバーを必要とせずに同様の IP アドレス管理機能を提供します。
外部 DHCP サーバーがない場合、または静的 IP アドレス管理が望ましい場合は、Whereabouts CNI プラグインを使用してください。Whereabouts プラグインには、古くなった IP アドレスの割り当てを管理するためのリコンサイラーデーモンが含まれています。
コンテナーの有効期間中、DHCP リースを定期的に更新する必要があるため、別のデーモンである DHCP IPAM CNI デーモンが必要です。DHCP IPAM CNI デーモンをデプロイするには、追加のネットワーク設定の一部としてこのデーモンのデプロイをトリガーするように Cluster Network Operator (CNO) 設定を変更します。
17.2.3. ネットワーク追加割り当ての設定 リンクのコピーリンクがクリップボードにコピーされました!
追加のネットワークは、k8s.cni.cncf.io
API グループの NetworkAttachmentDefinition
API を使用して設定されます。
NetworkAttachmentDefinition
オブジェクトには、プロジェクト管理ユーザーがアクセスできるので、機密情報やシークレットを保存しないでください。
API の設定は、以下の表で説明されています。
フィールド | 型 | 説明 |
---|---|---|
|
| 追加のネットワークの名前です。 |
|
| オブジェクトが関連付けられる namespace。 |
|
| JSON 形式の CNI プラグイン設定。 |
17.2.3.1. Cluster Network Operator による追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
追加のネットワーク割り当ての設定は、Cluster Network Operator (CNO) の設定の一部として指定します。
以下の YAML は、CNO で追加のネットワークを管理するための設定パラメーターを記述しています。
Cluster Network Operator (CNO) の設定
- 1
- 1 つまたは複数の追加ネットワーク設定の配列。
- 2
- 作成している追加ネットワーク割り当ての名前。名前は指定された
namespace
内で一意である必要があります。 - 3
- ネットワークの割り当てを作成する namespace。値を指定しない場合、
default
の namespace が使用されます。重要OVN-Kubernetes ネットワークプラグインの namespace の問題を阻止するには、追加のネットワークアタッチメントに
default
という名前を付けないでください。この namespace は、default
の追加のネットワークアタッチメント用に予約されているためです。 - 4
- JSON 形式の CNI プラグイン設定。
17.2.3.2. YAML マニフェストからの追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
追加ネットワークの設定は、以下の例のように YAML 設定ファイルから指定します。
17.2.4. 追加のネットワークタイプの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、追加のネットワークの具体的な設定フィールドを説明します。
17.2.4.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
17.2.4.1.1. ブリッジ CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、bridge-net
という名前の追加のネットワークを設定します。
17.2.4.2. ホストデバイスの追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
device
、hwaddr
、kernelpath
、または pciBusID
のいずれかのパラメーターを設定してネットワークデバイスを指定します。
以下のオブジェクトは、ホストデバイス CNI プラグインの設定パラメーターを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
|
オプション: |
|
| オプション: デバイスハードウェアの MAC アドレス。 |
|
|
オプション: |
|
|
オプション: |
17.2.4.2.1. ホストデバイス設定例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、hostdev-net
という名前の追加のネットワークを設定します。
17.2.4.3. VLAN 追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、VLAN、vlan
、CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
|
ネットワーク割り当てに関連付けるイーサネットインターフェイス。 |
|
|
|
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
| オプション: 返される DNS 情報。たとえば、DNS ネームサーバーの優先順位順リストなどです。 |
|
|
オプション: |
vlan
設定を持つ NetworkAttachmentDefinition
カスタムリソース定義 (CRD) は、ノード内の単一の Pod でのみ使用できます。CNI プラグインは、同じ master
インターフェイス上に同じ vlanId
を持つ vlan
サブインターフェイスを複数作成できないためです。
17.2.4.3.1. VLAN 設定例 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、vlan-net
という名前の追加ネットワークを含む vlan
設定を示しています。
17.2.4.4. 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
インターフェイスの設定には前の結果が使用されます。
17.2.4.4.1. IPVLAN CNI プラグインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、ipvlan-net
という名前の追加のネットワークを設定します。
17.2.4.5. MACVLAN 追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のオブジェクトは、MAC 仮想 LAN (MACVLAN) Container Network Interface (CNI) プラグインの設定パラメーターについて説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| IPAM CNI プラグインの設定オブジェクト。プラグインは、アタッチメント定義への IP アドレスの割り当てを管理します。 |
|
|
オプション: 仮想ネットワークのトラフィックの可視性を設定します。 |
|
| オプション: 新しく作成された macvlan インターフェイスに関連付けるホストネットワークインターフェイス。値が指定されていない場合は、デフォルトのルートインターフェイスが使用されます。 |
|
| オプション: 指定された値への最大転送単位 (MTU)。デフォルト値はカーネルによって自動的に設定されます。 |
|
|
オプション: |
プラグイン設定の master
キーを指定する場合は、競合の可能性を回避するために、プライマリーネットワークプラグインに関連付けられているものとは異なる物理ネットワークインターフェイスを使用してください。
17.2.4.5.1. MACVLAN CNI プラグイン設定の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、macvlan-net
という名前の追加のネットワークを設定します。
17.2.4.6. TAP 追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下のオブジェクトは、TAP CNI プラグインの設定パラメーターを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。値 |
|
|
CNO 設定に以前に指定した |
|
|
設定する CNI プラグインの名前: |
|
| オプション: インターフェイスの指定された MAC アドレスを要求します。 |
|
| オプション: 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。 |
|
| オプション: タップデバイスに関連付ける SELinux コンテキスト。 注記
OpenShift Container Platform には、値 |
|
|
オプション: マルチキューを有効にするには |
|
| オプション: タップデバイスを所有するユーザー。 |
|
| オプション: タップデバイスを所有するグループ。 |
|
| オプション: タップデバイスを既存のブリッジのポートとして設定します。 |
17.2.4.6.1. Tap 設定の例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、mynet
という名前の追加ネットワークを設定します。
17.2.4.6.2. TAP CNI プラグインの SELinux ブール値の設定 リンクのコピーリンクがクリップボードにコピーされました!
Container_t
SELinux コンテキストを使用して Tap デバイスを作成するには、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 注記すべてのノードが更新され、準備完了状態になっている必要があります。
17.2.4.7. 追加ネットワークで route-override プラグインを使用してルートを設定する リンクのコピーリンクがクリップボードにコピーされました!
次のオブジェクトは、route-override
CNI プラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
設定する CNI プラグインの名前: |
|
|
オプション: 既存ルートをフラッシュするには |
|
|
オプション: デフォルトルート、つまりゲートウェイルートをフラッシュするには |
|
| オプション: コンテナー namespace から削除するルートのリストを指定します。 |
|
|
オプション: コンテナー namespace に追加するルートのリストを指定します。各ルートは、 |
|
|
オプション: check コマンドをスキップするには、これを |
17.2.4.7.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
の新しいルートを追加することで、ルーティングルールが変更されます。
17.2.4.8. OVN-Kubernetes 追加ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Networking OVN-Kubernetes ネットワークプラグインを使用すると、Pod のセカンダリーネットワークインターフェイスを設定できます。セカンダリーネットワークインターフェイスを設定するには、NetworkAttachmentDefinition
カスタムリソース定義 (CRD) で設定を定義する必要があります。
Pod およびマルチネットワークポリシーの作成は、ノード内の OVN-Kubernetes コントロールプレーンエージェントが関連する network-attachment-definition
CRD を処理するまで、保留状態のままになる場合があります。
OVN-Kubernetes 追加ネットワークは、レイヤー 2 または ローカルネット トポロジーで設定できます。
- レイヤ 2 トポロジーは、East-West クラスタートラフィックをサポートしますが、基礎となる物理ネットワークへのアクセスは許可しません。
- ローカルネットトポロジーでは物理ネットワークへの接続が可能ですが、クラスターノード上の基盤となる Open vSwitch (OVS) ブリッジの追加設定が必要です。
次のセクションでは、OVN-Kubernetes で現在セカンダリーネットワークに許可されている各トポロジーの設定例を示します。
ネットワーク名は一意である必要があります。たとえば、同じネットワークを参照する異なる設定を持つ複数の NetworkAttachmentDefinition
CRD の作成はサポートされていません。
17.2.4.8.1. OVN-Kubernetes 追加ネットワークでサポートされるプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
OVN-Kubernetes 追加ネットワークは、次のサポートされているプラットフォームで使用できます。
- ベアメタル
- IBM Power®
- IBM Z®
- IBM® LinuxONE
- VMware vSphere
- Red Hat OpenStack Platform (RHOSP)
17.2.4.8.2. OVN-Kubernetes ネットワークプラグインの JSON 設定テーブル リンクのコピーリンクがクリップボードにコピーされました!
次の表は、OVN-Kubernetes CNI ネットワークプラグインの設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
CNI 仕様のバージョン。必要な値は |
|
|
ネットワークの名前。このネットワークは namespace スコープではありません。たとえば、 |
|
|
設定する CNI プラグインの名前。この値は |
|
|
ネットワークのトポロジー設定。 |
|
| クラスター全体のネットワークに使用するサブネット。
省略した場合、ネットワークを実装する論理スイッチはレイヤー 2 通信のみを提供し、ユーザーは Pod の IP アドレスを設定する必要があります。ポートセキュリティーは、MAC スプーフィングのみを防止します。 |
|
|
最大伝送単位 (MTU)。デフォルト値 |
|
|
この設定が含まれるネットワークアタッチメント定義 CRD のメタデータの |
|
| CIDR と IP アドレスのコンマ区切りのリスト。IP アドレスは割り当て可能な IP アドレスプールから削除され、Pod に渡されることはありません。 |
|
|
トポロジーが |
17.2.4.8.3. マルチネットワークポリシーとの互換性 リンクのコピーリンクがクリップボードにコピーされました!
k8s.cni.cncf.io
API グループの MultiNetworkPolicy
カスタムリソース定義 (CRD) によって提供されるマルチネットワークポリシー API は、OVN-Kubernetes セカンダリーネットワークと互換性があります。ネットワークポリシーを定義する場合、使用できるネットワークポリシールールは、OVN-Kubernetes セカンダリーネットワークが subnets
フィールドを定義しているかどうかによって異なります。詳細は、次の表を参照してください。
subnets フィールドの指定 | 許可されたマルチネットワークポリシーセレクター |
---|---|
はい |
|
いいえ |
|
たとえば、次のマルチネットワークポリシーは、blue2
という名前の追加ネットワークの追加ネットワーク CNI 設定で subnets
フィールドが定義されている場合にのみ有効です。
Pod セレクターを使用するマルチネットワークポリシーの例
次の例では、ipBlock
ネットワークポリシーセレクターを使用します。これは、OVN-Kubernetes 追加ネットワークに対して常に有効です。
IP ブロックセレクターを使用するマルチネットワークポリシーの例
17.2.4.8.4. レイヤー 2 スイッチドトポロジーの設定 リンクのコピーリンクがクリップボードにコピーされました!
スイッチド (レイヤー 2) トポロジーネットワークは、クラスター全体の論理スイッチを介してワークロードを相互接続します。この設定は、IPv6 およびデュアルスタックデプロイメントに使用できます。
レイヤー 2 スイッチドトポロジーネットワークでは、クラスター内の Pod 間のデータパケットの転送のみが許可されます。
次の JSON 例では、スイッチドセカンダリーネットワークを設定します。
17.2.4.8.5. ローカルネットトポロジーの設定 リンクのコピーリンクがクリップボードにコピーされました!
スイッチド localnet
トポロジーは、ネットワークアタッチメント定義 (NAD) として作成されたワークロードを、クラスター全体の論理スイッチを介して物理ネットワークに相互接続します。
17.2.4.8.5.1. OVN-Kubernetes 追加ネットワークを設定するための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- NMState Operator がインストールされている。詳細は、Kubernetes NMState Operator を参照してください。
17.2.4.8.5.2. OVN-Kubernetes 追加ネットワークマッピングの設定 リンクのコピーリンクがクリップボードにコピーされました!
OVN-Kubernetes 追加ネットワークとして使用するには、追加ネットワークを OVN ブリッジにマップする必要があります。ブリッジマッピングにより、ネットワークトラフィックが物理ネットワークに到達できるようになります。ブリッジマッピングは、インターフェイスラベルとも呼ばれる物理ネットワーク名を、Open vSwitch (OVS) で作成されたブリッジに関連付けます。
nmstate.io/v1
API グループの一部である NodeNetworkConfigurationPolicy
(NNCP) オブジェクトを作成して、宣言的にマッピングを作成できます。この API は NMState Operator によって提供されます。この API を使用すると、指定した nodeSelector
式 (node-role.kubernetes.io/worker: ''
など) に一致するノードにブリッジマッピングを適用できます。この宣言的なアプローチにより、NMState Operator は、ノードセレクターによって指定されたすべてのノードにセカンダリーネットワーク設定を自動的かつ透過的に適用します。
追加のネットワークを接続する場合、既存の br-ex
ブリッジを使用することも、新しいブリッジを作成することもできます。どのアプローチを使用するかは、特定のネットワークインフラストラクチャーによって異なります。次のアプローチを検討してください。
-
ノードにネットワークインターフェイスが 1 つしか含まれていない場合は、既存のブリッジを使用する必要があります。このネットワークインターフェイスは OVN-Kubernetes によって所有および管理されているため、
br-ex
ブリッジから削除したり、インターフェイス設定を変更したりしないでください。ネットワークインターフェイスを削除または変更すると、クラスターネットワークは正しく動作しなくなります。 - ノードに複数のネットワークインターフェイスが含まれている場合は、別のネットワークインターフェイスを新しいブリッジに接続して、追加のネットワークに使用できます。このアプローチでは、プライマリークラスターネットワークからトラフィックが分離されます。
次の例では、localnet1
ネットワークが br-ex
ブリッジにマッピングされています。
ブリッジを共有するためのマッピングの例
- 1
- 設定オブジェクトの名前。
- 2
- ノードネットワーク設定ポリシーを適用するノードを指定するノードセレクター。
- 3
- トラフィックが OVS ブリッジに転送される追加ネットワークの名前。この追加ネットワークは、OVN-Kubernetes 追加ネットワークを定義する
NetworkAttachmentDefinition
CRD のspec.config.name
フィールドの名前と一致する必要があります。 - 4
- ノード上の OVS ブリッジの名前。この値は、
state: present
を指定する場合にのみ必要です。 - 5
- マッピングの状態。ブリッジを追加する場合は
present
、ブリッジを削除する場合はabsent
である必要があります。デフォルト値はpresent
です。次の JSON の例では、
localnet1
という名前の localnet セカンダリーネットワークを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の例では、localnet2
ネットワークインターフェイスが ovs-br1
ブリッジに接続されています。この接続を使って、ネットワークインターフェイスを OVN-Kubernetes ネットワークプラグインで追加のネットワークとして利用できるようになります。
複数のインターフェイスを持つノードのマッピング例
- 1
- 設定オブジェクトの名前を指定します。
- 2
- ノードネットワーク設定ポリシーが適用されるノードを識別するノードセレクターを指定します。
- 3
- クラスタートラフィック用に OVN-Kubernetes によって使用されるデフォルトのブリッジとは別に動作する新しい OVS ブリッジを指定します。
- 4
- マルチキャストスヌーピングを有効にするかどうかを指定します。マルチキャストスヌーピングを有効にすると、ネットワークデバイスがすべてのネットワークメンバーにマルチキャストトラフィックをフラッディングすることを防止します。デフォルトでは、OVS ブリッジはマルチキャストスヌーピングを有効にしません。デフォルト値は
false
です。 - 5
- 新しい OVS ブリッジに関連付けるホストシステム上のネットワークデバイスを指定します。
- 6
- トラフィックを OVS ブリッジに転送する追加のネットワークの名前を指定します。この名前は、OVN-Kubernetes セカンダリーネットワークを定義する
NetworkAttachmentDefinition
CRD のspec.config.name
フィールドの値と一致する必要があります。 - 7
- ノード上の OVS ブリッジの名前を指定します。値は、
state: present
が設定されている場合にのみ必要です。 - 8
- マッピングの状態を指定します。有効な値は、ブリッジを追加する場合は
present
、ブリッジを削除する場合はabsent
です。デフォルト値はpresent
です。次の JSON の例では、
localnet2
という名前の localnet セカンダリーネットワークを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.4.8.6. 追加ネットワーク用の Pod の設定 リンクのコピーリンクがクリップボードにコピーされました!
k8s.v1.cni.cncf.io/networks
アノテーションを使用して、セカンダリーネットワーク割り当てを指定する必要があります。
次の例では、このガイドに示されている割り当て設定ごとに 1 つずつ、2 つのセカンダリー割り当てを持つ Pod をプロビジョニングします。
17.2.4.8.7. 静的 IP アドレスを使用して Pod を設定する リンクのコピーリンクがクリップボードにコピーされました!
次の例では、静的 IP アドレスを使用して Pod をプロビジョニングします。
- レイヤー 2 割り当てに対する Pod のセカンダリーネットワーク割り当ての IP アドレスのみを指定できます。
- Pod の静的 IP アドレスを指定できるのは、割り当て設定にサブネットが含まれていない場合のみです。
17.2.5. ネットワークアタッチメントの IP アドレス割り当ての設定 リンクのコピーリンクがクリップボードにコピーされました!
IPAM (IP アドレス管理) Container Network Interface (CNI) プラグインは、他の CNI プラグインの IP アドレスを提供します。
以下の IP アドレスの割り当てタイプを使用できます。
- 静的割り当て。
- DHCP サーバーを使用した動的割り当て。指定する DHCP サーバーは、追加のネットワークから到達可能である必要があります。
- Whereabouts IPAM CNI プラグインを使用した動的割り当て。
17.2.5.1. 静的 IP アドレス割り当ての設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、静的 IP アドレスの割り当ての設定を説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
IPAM のアドレスタイプ。値 |
|
| 仮想インターフェイスに割り当てる IP アドレスを指定するオブジェクトの配列。IPv4 と IPv6 の IP アドレスの両方がサポートされます。 |
|
| Pod 内で設定するルートを指定するオブジェクトの配列です。 |
|
| オプション: DNS の設定を指定するオブジェクトの配列です。 |
addresses
の配列には、以下のフィールドのあるオブジェクトが必要です。
フィールド | 型 | 説明 |
---|---|---|
|
|
指定する IP アドレスおよびネットワーク接頭辞。たとえば、 |
|
| Egress ネットワークトラフィックをルーティングするデフォルトのゲートウェイ。 |
フィールド | 型 | 説明 |
---|---|---|
|
|
CIDR 形式の IP アドレス範囲 ( |
|
| ネットワークトラフィックがルーティングされるゲートウェイ。 |
フィールド | 型 | 説明 |
---|---|---|
|
| DNS クエリーの送信先となる 1 つ以上の IP アドレスの配列。 |
|
|
ホスト名に追加するデフォルトのドメイン。たとえば、ドメインが |
|
|
DNS ルックアップのクエリー時に非修飾ホスト名に追加されるドメイン名の配列 (例: |
静的 IP アドレス割り当ての設定例
17.2.5.2. 動的 IP アドレス (DHCP) 割り当ての設定 リンクのコピーリンクがクリップボードにコピーされました!
Pod は、作成時に元の DHCP リースを取得します。リースは、クラスターで実行している最小限の DHCP サーバーデプロイメントで定期的に更新する必要があります。
イーサネットネットワークアタッチメントの場合、SR-IOV Network Operator は DHCP サーバーデプロイメントを作成しません。Cluster Network Operator は最小限の DHCP サーバーデプロイメントを作成します。
DHCP サーバーのデプロイメントをトリガーするには、以下の例にあるように Cluster Network Operator 設定を編集して shim ネットワーク割り当てを作成する必要があります。
shim ネットワーク割り当ての定義例
次の表は、DHCP による動的 IP アドレス割り当ての設定パラメーターを示しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
IPAM のアドレスタイプ。値 |
以下の JSON の例は、DHCP を使用した動的 IP アドレスの割り当ての設定を説明しています。
動的 IP アドレス (DHCP) 割り当ての設定例
{ "ipam": { "type": "dhcp" } }
{
"ipam": {
"type": "dhcp"
}
}
17.2.5.3. Whereabouts を使用した動的 IP アドレス割り当ての設定 リンクのコピーリンクがクリップボードにコピーされました!
Whereabouts CNI プラグインにより、DHCP サーバーを使用せずに IP アドレスを追加のネットワークに動的に割り当てることができます。
Whereabouts CNI プラグインは、重複する IP アドレス範囲と、別々の NetworkAttachmentDefinitions
CRD 内で同じ CIDR 範囲を複数回設定することもサポートしています。これにより、マルチテナント環境での柔軟性と管理機能が向上します。
17.2.5.3.1. 動的 IP アドレス設定オブジェクト リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Whereabouts を使用した動的 IP アドレス割り当ての設定オブジェクトを説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
|
IPAM のアドレスタイプ。値 |
|
| IP アドレスと範囲を CIDR 表記。IP アドレスは、この範囲内のアドレスから割り当てられます。 |
|
| オプション: CIDR 表記の IP アドレスと範囲 (0 個以上) のリスト。除外されたアドレス範囲内の IP アドレスは割り当てられません。 |
|
| オプション: 同じ範囲の IP アドレスを共有する場合でも、Pod の各グループまたはドメインが独自の IP アドレスセットを取得するようにします。このフィールドを設定することは、特にマルチテナント環境でネットワークを分離して整理しておく場合に重要です。 |
17.2.5.3.2. Whereabouts を使用した動的 IP アドレス割り当て設定 リンクのコピーリンクがクリップボードにコピーされました!
次の例は、Whereabouts を使用する動的アドレス割り当て設定を示しています。
whereabouts 動的 IP アドレスの割り当て
17.2.5.3.3. IP アドレス範囲が重複する場合に Whereabouts を使用した動的 IP アドレス割り当て リンクのコピーリンクがクリップボードにコピーされました!
次の例は、マルチテナントネットワークで重複する IP アドレスの範囲を使用する、動的な IP アドレスの割り当てを示しています。
NetworkAttachmentDefinition 1
- 1
- 任意。設定されている場合、
NetworkAttachmentDefinition 2
のnetwork_name
と一致する必要があります。
NetworkAttachmentDefinition 2
- 1
- 任意。設定されている場合、
NetworkAttachmentDefinition 1
のnetwork_name
と一致する必要があります。
17.2.5.4. whereabouts-reconciler デーモンセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Whereabouts reconciler は、Whereabouts IP アドレス管理 (IPAM) ソリューションを使用して、クラスター内の Pod の動的 IP アドレス割り当てを管理します。これにより、各 Pod が指定の IP アドレス範囲から一意の IP アドレスを確実に取得します。また、Pod が削除またはスケールダウンされた場合の IP アドレスの解放も処理します。
動的 IP アドレスの割り当てには、NetworkAttachmentDefinition
カスタムリソース定義 (CRD) を使用することもできます。
whereabouts-reconciler
デーモンセットは、Cluster Network Operator を通じて追加のネットワークを設定するときに自動的に作成されます。YAML マニフェストから追加のネットワークを設定する場合、これは自動的には作成されません。
whereabouts-reconciler
デーモンセットのデプロイをトリガーするには、Cluster Network Operator のカスタムリソース (CR) ファイルを編集して、whereabouts-shim
ネットワーク割り当てを手動で作成する必要があります。
whereabouts-reconciler
デーモンセットをデプロイするには、次の手順を使用します。
手順
以下のコマンドを実行して、
Network.operator.openshift.io
カスタムリソース (CR) を編集します。oc edit network.operator.openshift.io cluster
$ oc edit network.operator.openshift.io cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例で展開されている YAML の
additionalNetworks
セクションを、カスタムリソース (CR) のspec
定義内に含めます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存し、テキストエディターを編集します。
次のコマンドを実行して、
whereabouts-reconciler
デーモンセットが正常にデプロイされたことを確認します。oc get all -n openshift-multus | grep whereabouts-reconciler
$ oc get all -n openshift-multus | grep whereabouts-reconciler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.5.5. Whereabouts IP リコンサイラーのスケジュールの設定 リンクのコピーリンクがクリップボードにコピーされました!
Whereabouts IPAM CNI プラグインは、IP リコンサイラーを毎日実行します。このプロセスは、IP が枯渇して新しい Pod に IP が割り当てられなくなる状態を避けるために、完了せずに残っている IP 割り当てをクリーンアップします。
IP リコンサイラーを実行する頻度を変更するには、次の手順を使用します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
whereabouts-reconciler
デーモンセットがデプロイされており、whereabouts-reconciler
Pod が起動して実行されている。
手順
次のコマンドを実行して、IP リコンサイラー用の特定の cron 式を使用し、
openshift-multus
namespace にwhereabouts-config
という名前のConfigMap
オブジェクトを作成します。oc create configmap whereabouts-config -n openshift-multus --from-literal=reconciler_cron_expression="*/15 * * * *"
$ oc create configmap whereabouts-config -n openshift-multus --from-literal=reconciler_cron_expression="*/15 * * * *"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この cron 式は、IP リコンサイラーを 15 分ごとに実行するよう指定します。この式は固有の要件に基づいて調整してください。
注記whereabouts-reconciler
デーモンセットは、5 つのアスタリスクを含む cron 式パターンのみを使用できます。秒を表すために使用される 6 番目のアスタリスクは、現在サポートされていません。次のコマンドを実行して、
openshift-multus
namespace 内のwhereabouts-reconciler
デーモンセットおよび Pod に関連するリソースに関する情報を取得します。oc get all -n openshift-multus | grep whereabouts-reconciler
$ oc get all -n openshift-multus | grep whereabouts-reconciler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、設定した間隔で
whereabouts-reconciler
Pod が IP リコンサイラーを実行していることを確認します。oc -n openshift-multus logs whereabouts-reconciler-2p7hw
$ oc -n openshift-multus logs whereabouts-reconciler-2p7hw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.5.6. デュアルスタック IP アドレスを動的に割り当てる設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
デュアルスタックの IP アドレスの割り当ては、ipRanges
パラメーターで設定できます。
- IPv4 アドレス
- IPv6 アドレス
- 複数の IP アドレスの割り当て
手順
-
type
をwhereabouts
に設定します。 以下の例のように、
ipRanges
を使用して IP アドレスを割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ネットワークを Pod にアタッチします。詳細は、「追加のネットワークへの Pod の追加」を参照してください。
- すべての IP アドレスが割り当てられていることを確認します。
以下のコマンドを実行して、IP アドレスがメタデータとして割り当てられることを確認します。
$ oc exec -it mypod -- ip a
$ oc exec -it mypod -- ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.6. Cluster Network Operator による追加ネットワーク割り当ての作成 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Network Operator (CNO) は追加ネットワークの定義を管理します。作成する追加のネットワークを指定すると、CNO によって NetworkAttachmentDefinition
CRD が自動的に作成されます。
Cluster Network Operator によって管理される NetworkAttachmentDefinition
CRD は編集しないでください。これを実行すると、追加ネットワークのネットワークトラフィックが中断する可能性があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
オプション: 追加のネットワークの namespace を作成します。
oc create namespace <namespace_name>
$ oc create namespace <namespace_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CNO 設定を編集するには、以下のコマンドを入力します。
oc edit networks.operator.openshift.io cluster
$ oc edit networks.operator.openshift.io cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプル CR のように、作成される追加ネットワークの設定を追加して、作成している CR を変更します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存し、テキストエディターを終了して、変更をコミットします。
検証
次のコマンドを実行して、CNO が
NetworkAttachmentDefinition
CRD を作成したことを確認します。CNO が CRD を作成するまでに遅延が発生する可能性があります。oc get network-attachment-definitions -n <namespace>
$ oc get network-attachment-definitions -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<namespace>
- CNO の設定に追加したネットワーク割り当ての namespace を指定します。
出力例
NAME AGE test-network-1 14m
NAME AGE test-network-1 14m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.7. YAML マニフェストを適用した追加のネットワーク割り当ての作成 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
以下の例のように、追加のネットワーク設定を含む YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のネットワークを作成するには、次のコマンドを入力します。
oc apply -f <file>.yaml
$ oc apply -f <file>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<file>
- YAML マニフェストを含むファイルの名前を指定します。
17.2.8. コンテナーネットワーク namespace での master インターフェイスの設定について リンクのコピーリンクがクリップボードにコピーされました!
コンテナー namespace に存在する master
インターフェイスに基づいて、MAC-VLAN、IP-VLAN、または VLAN サブインターフェイスを作成できます。別のネットワークアタッチメント定義 CRD で、Pod ネットワーク設定の一部として master
インターフェイスを作成することもできます。
コンテナー namespace の master
インターフェイスを使用するには、NetworkAttachmentDefinition
CRD のサブインターフェイス設定に存在する linkInContainer
パラメーターに true
を指定する必要があります。
17.2.8.1. SR-IOV VF 上で複数の VLAN を作成する リンクのコピーリンクがクリップボードにコピーされました!
この機能を利用するユースケースの例として、SR-IOV VF に基づいて複数の VLAN を作成することが挙げられます。これを行うには、まず SR-IOV ネットワークを作成し、次に VLAN インターフェイスのネットワーク割り当てを定義します。
次の例は、この図に示されているセットアップを設定する方法を示しています。
図17.1 VLAN の作成
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - SR-IOV Network Operator がインストールされている。
手順
次のコマンドを使用して、Pod をデプロイする専用のコンテナー namespace を作成します。
oc new-project test-namespace
$ oc new-project test-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV ノードポリシーを作成します。
SriovNetworkNodePolicy
オブジェクトを作成してから、YAML をsriov-node-network-policy.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記deviceType: netdevice
を設定した SR-IOV ネットワークノードポリシーの設定例は、Mellanox ネットワークインターフェイスカード (NIC) 向けに特別に調整されています。以下のコマンドを実行して YAML を適用します。
oc apply -f sriov-node-network-policy.yaml
$ oc apply -f sriov-node-network-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ノードの再起動が必要なため、YAML の適用には時間がかかる場合があります。
SR-IOV ネットワークを作成します。
次の CR の例のように、追加の SR-IOV ネットワーク割り当て用の
SriovNetwork
カスタムリソース (CR) を作成します。YAML をsriov-network-attachment.yaml
ファイルとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して YAML を適用します。
oc apply -f sriov-network-attachment.yaml
$ oc apply -f sriov-network-attachment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
VLAN 追加ネットワークを作成します。
以下の YAML の例を使用して、
vlan100-additional-network-configuration.yaml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f vlan100-additional-network-configuration.yaml
$ oc apply -f vlan100-additional-network-configuration.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
前に指定したネットワークを使用して、Pod 定義を作成します。
次の YAML の例を使用して、
pod-a.yaml
という名前のファイルを作成します。注記以下のマニフェストには 2 つのリソースが含まれています。
- セキュリティーラベルのある namespace
- 適切なネットワークアノテーションを含む Pod 定義
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- VLAN インターフェイスの
master
として使用される名前。
以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f pod-a.yaml
$ oc apply -f pod-a.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、
test-namespace
内のnginx-pod
に関する詳細情報を取得します。oc describe pods nginx-pod -n test-namespace
$ oc describe pods nginx-pod -n test-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.8.2. コンテナー namespace のブリッジマスターインターフェイスをベースにしてサブインターフェイスを作成する リンクのコピーリンクがクリップボードにコピーされました!
コンテナー namespace に存在するブリッジ master
インターフェイスに基づいてサブインターフェイスを作成できます。サブインターフェイスの作成は、他のタイプのインターフェイスに適用できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとして OpenShift Container Platform クラスターにログインしている。
手順
次のコマンドを入力して、Pod のデプロイ先となる専用のコンテナー namespace を作成します。
oc new-project test-namespace
$ oc new-project test-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML の例を使用して、
bridge-nad.yaml
という名前のブリッジNetworkAttachmentDefinition
カスタムリソース定義 (CRD) ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NetworkAttachmentDefinition
CRD を OpenShift Container Platform クラスターに適用します。oc apply -f bridge-nad.yaml
$ oc apply -f bridge-nad.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
NetworkAttachmentDefinition
CRD が正常に作成されたことを確認します。oc get network-attachment-definitions
$ oc get network-attachment-definitions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE bridge-network 15s
NAME AGE bridge-network 15s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML の例を使用して、追加の IPVLAN ネットワーク設定用に
ipvlan-additional-network-configuration.yaml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f ipvlan-additional-network-configuration.yaml
$ oc apply -f ipvlan-additional-network-configuration.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NetworkAttachmentDefinition
CRD が正常に作成されたことを確認します。oc get network-attachment-definitions
$ oc get network-attachment-definitions
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE bridge-network 87s ipvlan-net 9s
NAME AGE bridge-network 87s ipvlan-net 9s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML の例を使用して、Pod 定義用に
pod-a.yaml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IPVLAN インターフェイスの
master
として使用する名前を指定します。
以下のコマンドを実行して、YAML ファイルを適用します。
oc apply -f pod-a.yaml
$ oc apply -f pod-a.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、Pod が実行されていることを確認します。
oc get pod -n test-namespace
$ oc get pod -n test-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE pod-a 1/1 Running 0 2m36s
NAME READY STATUS RESTARTS AGE pod-a 1/1 Running 0 2m36s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
test-namespace
内のpod-a
リソースに関するネットワークインターフェイス情報を表示します。oc exec -n test-namespace pod-a -- ip a
$ oc exec -n test-namespace pod-a -- ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、ネットワークインターフェイス
ext1
が物理インターフェイスext0
に関連付けられていることを示しています。