10.7. 基本的なカスタマイズを使用した macvlan ネットワークの設定
クラスター管理者は、macvlan Container Network Interface (CNI) プラグインを使用して、クラスターの追加ネットワークを設定できます。Pod がネットワークに割り当てられている場合、プラグインはホストの親インターフェイスからサブインターフェイスを作成します。各サブデバイスに対して固有のハードウェアの MAC アドレスが生成されます。
このプラグインがサブインターフェイス用に生成する固有の MAC アドレスは、クラウドプロバイダーのセキュリティーポリシーとの互換性がない場合があります。
基本的な設定を YAML に直接指定します。この方法では、JSON で CNI オブジェクトを直接使用して macvlan 設定を指定するよりも設定オプションが少なくなります。
10.7.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 オブジェクトを作成していることを確認します。
<namespace>
を、ネットワーク割り当ての設定時に指定した namespace に置き換えます。CNO がオブジェクトを作成するまでに遅延が生じる可能性があります。$ oc get network-attachment-definitions -n <namespace>
出力例
NAME AGE test-network-1 14m
10.7.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 アドレスの割り当てを管理します。
10.7.1.1.1. macvlan 設定の例
以下の例では、macvlan-net
という名前の追加のネットワークを設定します。
name: macvlan-net namespace: work-network type: SimpleMacvlan simpleMacvlanConfig: ipamConfig: type: DHCP
10.7.1.2. IPAM CNI プラグインの設定
IPAM Container Network Interface (CNI) プラグインは、他の CNI プラグインに IP アドレス管理 (IPAM) を提供します。
以下の YAML 設定は設定可能なパラメーターについて説明しています。
IPAM CNI プラグイン YAML 設定オブジェクト
ipamConfig: type: <type> 1 ... 2
10.7.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
)。
10.7.1.2.2. 動的 IPAM 設定 YAML
以下の YAML は、静的 IP アドレスの割り当ての設定について説明しています。
動的 IPAM 設定 YAML
ipamConfig: type: DHCP
10.7.1.2.3. 静的 IP アドレス割り当ての設定例
以下の例は、静的 IP アドレスの IPAM 設定を示しています。
ipamConfig: type: static staticIPAMConfig: addresses: - address: 198.51.100.11/24 gateway: 198.51.100.10 routes: - destination: 0.0.0.0/0 gateway: 198.51.100.1 dns: nameservers: - 198.51.100.1 - 198.51.100.2 domain: testDNS.example search: - testdomain1.example - testdomain2.example
10.7.1.2.4. 動的 IP アドレス割り当ての設定例
以下の例では、DHCP の IPAM 設定を示しています。
ipamConfig: type: DHCP