NSX 节点代理是一个 DaemonSet,每个 pod 将在其中运行两个容器。一个容器运行 NSX 节点代理,其主要职责是管理容器网络接口。它与 CNI 插件和 Kubernetes API 服务器进行交互。另一个容器运行 NSX Kube 代理,其唯一的职责是将群集 IP 转换为 pod IP 以实施 Kubernetes 服务抽象。它实施与上游 Kube 代理相同的功能。

过程

  1. 下载 NCP Docker 映像。

    文件名是 nsx-ncp-xxxxxxx.tar,其中 xxxxxxx 是内部版本号。

  2. 下载 NSX 节点代理 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 节点代理 DaemonSet。
        oc apply -f nsx-node-agent-ds.yml