NSX 노드 에이전트는 각 포드가 두 개의 컨테이너를 실행하는 DaemonSet입니다. 하나의 컨테이너는 주로 컨테이너 네트워크 인터페이스를 관리하는 NSX 노드 에이전트를 실행합니다. 이 에이전트는 CNI 플러그인 및 Kubernetes API 서버와 상호 작용합니다. 다른 컨테이너는 클러스터 IP를 포드 IP로 변환하여 Kubernetes 서비스 추상화를 구현하는 작업만 담당하는 NSX kube-proxy를 실행합니다. 이는 업스트림 kube-proxy와 동일한 기능을 구현합니다.

프로시저

  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이 ReadOnly 볼륨으로 마운트되도록 지정해야 합니다. 다운로드한 yaml 파일은 이미 이 사양을 가지며 변경해서는 안 됩니다.

  5. 다음 명령을 사용하여 NSX 노드 에이전트 DaemonSet을 생성합니다.
        oc apply -f nsx-node-agent-ds.yml