2.2. NetworkAttachmentDefinition を使用したプライマリーネットワークの作成


次のセクションでは、NetworkAttachmentDefinition (NAD) リソースを使用してプライマリーネットワークを作成および管理する方法を説明します。

2.2.1. プライマリーネットワークの管理方法

NAD によって作成されたプライマリーネットワークのライフサイクルは、次のどちらかの方法で管理できます。

  • Cluster Network Operator (CNO) 設定を変更します。この方法を使用すると、CNO によって NetworkAttachmentDefinition オブジェクトが自動的に作成および管理されます。CNO は、オブジェクトのライフサイクルを管理するだけでなく、DHCP によって割り当てられる IP アドレスを使用するプライマリーネットワークで DHCP が利用可能であることを確認します。
  • YAML マニフェストを適用します。この方法を使用すると、NetworkAttachmentDefinition オブジェクトを作成してプライマリーネットワークを直接管理できます。この方法では、Pod にプライマリーネットワークインターフェイスを割り当てるために複数の CNI プラグインを呼び出すことができます。

各アプローチは同時に使用できず、プライマリーネットワークを管理する場合に 1 つのアプローチしか使用できません。どちらのアプローチでも、プライマリーネットワークは、お客様が設定した Container Network Interface (CNI) プラグインによって管理されます。

注記

OVN SDN を使用して、Red Hat OpenStack Platform (RHOSP) に複数のネットワークインターフェイスを持つ OpenShift Container Platform ノードをデプロイすると、セカンダリーインターフェイスの DNS 設定がプライマリーインターフェイスの DNS 設定よりも優先される場合があります。その場合は、次のコマンドを実行して、セカンダリーインターフェイスに割り当てられているサブネット ID の DNS ネームサーバーを削除します。

$ openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
Copy to Clipboard Toggle word wrap

2.2.2. Cluster Network Operator によるプライマリーネットワーク割り当ての作成

Cluster Network Operator (CNO) は追加ネットワークの定義を管理します。作成するプライマリーネットワークを指定すると、CNO によって NetworkAttachmentDefinition カスタムリソース定義 (CRD) が自動的に作成されます。

重要

Cluster Network Operator によって管理される NetworkAttachmentDefinition CRD は編集しないでください。これを実行すると、プライマリーネットワークのネットワークトラフィックが中断する可能性があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. オプション: プライマリーネットワークの namespace を作成します。

    $ oc create namespace <namespace_name>
    Copy to Clipboard Toggle word wrap
  2. CNO 設定を編集するには、以下のコマンドを入力します。

    $ oc edit networks.operator.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  3. 以下のサンプル CR のように、作成されるプライマリーネットワークの設定を追加して、作成している CR を変更します。

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      # ...
      additionalNetworks:
      - name: tertiary-net
        namespace: namespace2
        type: Raw
        rawCNIConfig: |-
          {
            "cniVersion": "0.3.1",
            "name": "tertiary-net",
            "type": "ipvlan",
            "master": "eth1",
            "mode": "l2",
            "ipam": {
              "type": "static",
              "addresses": [
                {
                  "address": "192.168.1.23/24"
                }
              ]
            }
          }
    Copy to Clipboard Toggle word wrap
  4. 変更を保存し、テキストエディターを終了して、変更をコミットします。

検証

  • 次のコマンドを実行して、CNO が NetworkAttachmentDefinition CRD を作成したことを確認します。CNO が CRD を作成するまでに遅延が発生する可能性があります。予想される出力には、NAD CRD の名前と作成後の経過時間 (分) が表示されます。

    $ oc get network-attachment-definitions -n <namespace>
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <namespace>
    CNO の設定に追加したネットワーク割り当ての namespace を指定します。

2.2.2.1. プライマリーネットワークアタッチメントの設定

プライマリーネットワークは、k8s.cni.cncf.io API グループの NetworkAttachmentDefinition API を使用して設定されます。

API の設定は、以下の表で説明されています。

Expand
表2.3 NetworkAttachmentDefinition API フィールド
フィールド説明

metadata.name

string

プライマリーネットワークの名前。

metadata.namespace

string

オブジェクトが関連付けられる namespace。

spec.config

string

JSON 形式の CNI プラグイン設定。

2.2.3. YAML マニフェストを適用したプライマリーネットワークアタッチメントの作成

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • NAD のデプロイ先となる namespace で作業している。

手順

  1. 以下の例のように、プライマリーネットワーク設定を含む YAML ファイルを作成します。

    apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
      name: next-net
    spec:
      config: |-
        {
          "cniVersion": "0.3.1",
          "name": "work-network",
          "namespace": "namespace2", 
    1
    
          "type": "host-device",
          "device": "eth1",
          "ipam": {
            "type": "dhcp"
          }
        }
    Copy to Clipboard Toggle word wrap
    1
    オプション: NAD が適用される namespace を指定できます。NAD のデプロイ先となる namespace で作業している場合、この仕様は必要ありません。
  2. プライマリーネットワークを作成するには、次のコマンドを入力します。

    $ oc apply -f <file>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <file>
    YAML マニフェストを含むファイルの名前を指定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat