8.3.3. 分離されたネットワークにサービス Pod を接続する


サービス Pod をネットワークに接続するために、分離されたネットワークごとに NetworkAttachmentDefinition (net-attach-def) カスタムリソース (CR) を作成します。

注記

環境内で Pod を頻繁に再作成する場合は、Whereabouts リコンサイラーを使用して Pod の動的 IP アドレス割り当てを管理してください。詳細は、RHOCP 複数ネットワーク ガイドの whereabouts-reconciler デーモンセットの作成 を参照してください。

手順

  1. ワークステーションに NetworkAttachmentDefinition (net-attach-def) CR ファイル (例: openstack-net-attach-def.yaml) を作成します。
  2. NetworkAttachmentDefinition CR ファイルで、各分離ネットワークの NetworkAttachmentDefinition リソースを設定して、サービスデプロイメント Pod をネットワークに割り当てます。次の例では、次のネットワークの NetworkAttachmentDefinition リソースを作成します。

    • macvlan タイプの internalapistoragectlplane、および 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": nncp CR で定義されている、ネットワークに関連付けられたノードインターフェイス名。
    • "ipam": whereabouts CNI IPAM プラグインは、作成された Pod に .30 - .70 の範囲の IP を割り当てます。
    • "range_start" - "range_end": IP アドレスプールの範囲が、MetalLB IPAddressPool の範囲および NetConfig allocationRange と重複しないようにしてください。
  3. クラスターに NetworkAttachmentDefinition CR を作成します。

    $ oc apply -f openstack-net-attach-def.yaml
  4. NetworkAttachmentDefinition CR が作成されたことを確認します。

    $ oc get net-attach-def -n openstack
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る