8.3.3. 分離されたネットワークにサービス Pod を接続する
サービス Pod をネットワークに接続するために、分離されたネットワークごとに NetworkAttachmentDefinition (net-attach-def) カスタムリソース (CR) を作成します。
環境内で Pod を頻繁に再作成する場合は、Whereabouts リコンサイラーを使用して Pod の動的 IP アドレス割り当てを管理してください。詳細は、RHOCP 複数ネットワーク ガイドの whereabouts-reconciler デーモンセットの作成 を参照してください。
手順
-
ワークステーションに
NetworkAttachmentDefinition(net-attach-def) CR ファイル (例:openstack-net-attach-def.yaml) を作成します。 NetworkAttachmentDefinitionCR ファイルで、各分離ネットワークのNetworkAttachmentDefinitionリソースを設定して、サービスデプロイメント Pod をネットワークに割り当てます。次の例では、次のネットワークのNetworkAttachmentDefinitionリソースを作成します。-
macvlanタイプのinternalapi、storage、ctlplane、およびtenantネットワーク。 -
bridgeタイプの負荷分散管理ネットワークであるoctaviaこのネットワークアタッチメントは、ロードバランサー仮想マシン (amphorae) を管理する Pod と、OVN Operator によって管理される Open vSwitch Pod を接続します。 -
DNS サービス (designate) が、DNS サーバーを管理するために内部で使用する
designateネットワーク -
designateextネットワークは、DNS サービスリゾルバーと DNS サーバーへの外部アクセスを提供するために使用されます。
apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: internalapi namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "internalapi", "type": "macvlan", "master": "internalapi", "ipam": { "type": "whereabouts", "range": "172.17.0.0/24", "range_start": "172.17.0.30", "range_end": "172.17.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: ctlplane namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "ctlplane", "type": "macvlan", "master": "enp6s0", "ipam": { "type": "whereabouts", "range": "192.168.122.0/24", "range_start": "192.168.122.30", "range_end": "192.168.122.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: storage namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "storage", "type": "macvlan", "master": "storage", "ipam": { "type": "whereabouts", "range": "172.18.0.0/24", "range_start": "172.18.0.30", "range_end": "172.18.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: tenant namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "tenant", "type": "macvlan", "master": "tenant", "ipam": { "type": "whereabouts", "range": "172.19.0.0/24", "range_start": "172.19.0.30", "range_end": "172.19.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: octavia name: octavia namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "octavia", "type": "bridge", "bridge": "octbr", "ipam": { "type": "whereabouts", "range": "172.23.0.0/24", "range_start": "172.23.0.30", "range_end": "172.23.0.70", "routes": [ { "dst": "172.24.0.0/16", "gw" : "172.23.0.150" } ] } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: designate namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "designate", "type": "macvlan", "master": "designate", "ipam": { "type": "whereabouts", "range": "172.26.0.0/16", "range_start": "172.26.0.30", "range_end": "172.26.0.70" } } --- apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: designateext namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "designateext", "type": "macvlan", "master": "designateext", "ipam": { "type": "whereabouts", "range": "172.34.0.0/16", "range_start": "172.34.0.30", "range_end": "172.34.0.70" } }-
metadata.namespace: サービスがデプロイされる namespace。 -
"master":nncpCR で定義されている、ネットワークに関連付けられたノードインターフェイス名。 -
"ipam":whereaboutsCNI IPAM プラグインは、作成された Pod に.30 - .70の範囲の IP を割り当てます。 -
"range_start" - "range_end": IP アドレスプールの範囲が、MetalLBIPAddressPoolの範囲およびNetConfig allocationRangeと重複しないようにしてください。
-
クラスターに
NetworkAttachmentDefinitionCR を作成します。$ oc apply -f openstack-net-attach-def.yamlNetworkAttachmentDefinitionCR が作成されたことを確認します。$ oc get net-attach-def -n openstack