7.5. macvlan ネットワークの設定
クラスター管理者は、macvlan CNI プラグインを使用して、クラスターの追加のネットワークを設定できます。Pod がネットワークに割り当てられている場合、プラグインはホストの親インターフェイスからサブインターフェイスを作成します。各サブデバイスに対して固有のハードウェアの MAC アドレスが生成されます。
このプラグインがサブインターフェイス用に生成する固有の MAC アドレスは、クラウドプロバイダーのセキュリティーポリシーとの互換性がない場合があります。
7.5.1. macvlan CNI プラグインを使用した追加ネットワーク割り当ての作成
Cluster Network Operator (CNO) は追加ネットワークの定義を管理します。作成する追加ネットワークを指定する場合、CNO は NetworkAttachmentDefinition
オブジェクトを自動的に作成します。
Cluster Network Operator が管理する NetworkAttachmentDefinition
オブジェクトは編集しないでください。これを実行すると、追加ネットワークのネットワークトラフィックが中断する可能性があります。
前提条件
-
OpenShift CLI (
oc
) をインストールしている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
クラスターの追加ネットワークを作成するには、以下の手順を実施します。
以下のコマンドを実行して CNO CR を編集します。
$ oc edit networks.operator.openshift.io cluster
以下のサンプル CR のように、作成される追加ネットワークの設定を追加して、作成している CR を変更します。
以下の YAML は、macvlan CNI プラグインを設定します。
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: additionalNetworks: 1 - name: test-network-1 namespace: test-1 type: SimpleMacvlan simpleMacvlanConfig: ipamConfig: type: static staticIPAMConfig: addresses: - address: 10.1.1.7/24
- 1
- 追加ネットワーク割り当て定義の設定を指定します。
- 変更を保存し、テキストエディターを終了して、変更をコミットします。
オプション: 以下のコマンドを実行して、CNO が
NetworkAttachmentDefinition
オブジェクトを作成していることを確認します。CNO が CR を作成するまでに遅延が生じる可能性があります。$ oc get network-attachment-definitions -n <namespace>
出力例
NAME AGE test-network-1 14m
7.5.1.1. macvlan CNI プラグインの設定
以下の YAML は、macvlan Container Network Interface (CNI) プラグインの設定パラメーターについて説明しています。
macvlan YAML の設定
name: <name> 1 namespace: <namespace> 2 type: SimpleMacvlan simpleMacvlanConfig: master: <master> 3 mode: <mode> 4 mtu: <mtu> 5 ipamConfig: 6 ...
- 1
- 作成している追加ネットワーク割り当ての名前を指定します。名前は指定された
namespace
内で一意である必要があります。 - 2
- ネットワークの割り当てを作成する namespace を指定します。値が指定されない場合は、
default
namespace が使用されます。 - 3
- 仮想インターフェイスに関連付けるイーサネットインターフェイス。
master
の値が指定されない場合、ホストシステムのプライマリーイーサネットインターフェイスが使用されます。 - 4
- 仮想ネットワークのトラフィックの可視性を設定します。
bridge
、passthru
、private
、またはvepa
のいずれかである必要があります。mode
の値が指定されない場合、デフォルトの値はbridge
になります。 - 5
- 最大転送単位 (MTU) を指定された値に設定します。デフォルト値はカーネルによって自動的に設定されます。
- 6
- IPAM CNI プラグインの設定オブジェクトを指定します。プラグインは、割り当て定義についての IP アドレスの割り当てを管理します。
7.5.1.1.1. macvlan 設定の例
以下の例では、macvlan-net
という名前の追加のネットワークを設定します。
name: macvlan-net namespace: work-network type: SimpleMacvlan simpleMacvlanConfig: ipamConfig: type: DHCP
7.5.1.2. IPAM CNI プラグインの設定
IPAM Container Network Interface (CNI) プラグインは、他の CNI プラグインに IP アドレス管理 (IPAM) を提供します。DHCP を使用して、静的 IP アドレスの割り当てまたは動的 IP アドレスの割り当てのいずれかに IPAM を設定することができます。指定する DHCP サーバーは、追加のネットワークから到達可能である必要があります。
以下の YAML 設定は設定可能なパラメーターについて説明しています。
IPAM CNI プラグイン YAML 設定オブジェクト
ipamConfig: type: <type> 1 ... 2
7.5.1.2.1. 静的 IPAM 設定 YAML
以下の YAML は、静的 IP アドレスの割り当ての設定について説明しています。
静的 IPAM 設定 YAML
ipamConfig: type: static staticIPAMConfig: addresses: 1 - address: <address> 2 gateway: <gateway> 3 routes: 4 - destination: <destination> 5 gateway: <gateway> 6 dns: 7 nameservers: 8 - <nameserver> domain: <domain> 9 search: 10 - <search_domain>
- 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
)。
7.5.1.2.2. 動的 IPAM 設定 YAML
以下の YAML は、静的 IP アドレスの割り当ての設定について説明しています。
動的 IPAM 設定 YAML
ipamConfig: type: DHCP
7.5.1.2.3. 静的 IP アドレス割り当ての設定例
以下の例は、静的 IP アドレスの IPAM 設定を示しています。
ipamConfig: type: static staticIPAMConfig: addresses: - address: 10.51.100.11 gateway: 10.51.100.10 routes: - destination: 0.0.0.0/0 gateway: 10.51.100.1 dns: nameservers: - 10.51.100.1 - 10.51.100.2 domain: testDNS.example search: - testdomain1.example - testdomain2.example
7.5.1.2.4. 動的 IP アドレス割り当ての設定例
以下の例では、DHCP の IPAM 設定を示しています。
ipamConfig: type: DHCP