NSX Node Agent は、各ポッドで 2 つのコンテナを実行する DaemonSet です。1 つのコンテナは、NSX Node Agent を実行し、主にコンテナのネットワーク インターフェイスを管理します。そして、CNI プラグインや Kubernetes API サーバと通信を行います。もう 1 つのコンテナは、NSX kube-proxy を実行し、クラスタの IP アドレスをポッドの IP アドレスに変換することで Kubernetes サービスの抽象化を実装します。これは、アップストリームの kube-proxy と同じ機能です。

手順

  1. NCP Docker イメージをダウンロードします。

    ファイル名は nsx-ncp-xxxxxxx.tar です。xxxxxxx はビルド番号です。

  2. NSX Node Agent の DaemonSet yaml テンプレートをダウンロードします。

    ファイル名は nsx-node-agent-ds.yml です。このファイルを編集することも、独自のテンプレート ファイルの例として使用することもできます。

  3. NCP Docker イメージをイメージ レジストリにロードします。
        docker load -i <tar file>
  4. nsx-node-agent-ds.yml を編集します。

    ロードされているイメージの名前を変更します。

    次の変更を行います。

     [coe]
     node_type = 'BAREMETAL' 
     ...  
     [nsx_node_agent] 
     ovs_bridge = 'nsx-managed' 

    次の行をコメント解除します。

    securityContext:
      capabilities:
        add:
          - NET_ADMIN
          - SYS_ADMIN
          - SYS_PTRACE
          - DAC_READ_SEARCH
          # For BMC usecase
          - DAC_OVERRIDE
    volumeMounts:
    …
    # mount nestdb-sock for baremetal node
    - name: nestdb-sock
    mountPath: /var/run/vmware/nestdb/nestdb-server.sock
    volumes:
    …
    # volume for baremetal node
    - name: nestdb-sock
       hostPath:
       path: /var/run/vmware/nestdb/nestdb-server.sock
       type: Socket

    注:

    yaml ファイルで、ncp.ini に生成された ConfigMap を読み取り専用ボリュームとしてマウントするように指定する必要があります。ダウンロードした yaml ファイルには、この指定がすでに行われています。この設定は変更できません。

  5. 次のコマンドを使用して、NSX Node Agent の DaemonSet を作成します。
        oc apply -f nsx-node-agent-ds.yml