El agente del nodo de NSX es un DaemonSet en el que cada pod ejecuta dos contenedores. Uno de los contenedores ejecuta el agente del nodo de NSX, cuya mayor responsabilidad es administrar las interfaces de red de los contenedores. Interactúa con el complemento CNI y el servidor de la API de Kubernetes. El otro contenedor ejecuta kube-proxy de NSX, cuya única responsabilidad es implementar la abstracción del servicio de Kubernetes traduciendo las IP de los clústeres en IP de pods. Implementa la misma funcionalidad que el kube-proxy ascendente.

Procedimiento

  1. Descargue la imagen Docker de NCP.
    El nombre de archivo es nsx-ncp-xxxxxxx.tar, donde xxxxxxx es el número de compilación.
  2. Descargue la plantilla yaml de DaemonSet del agente del nodo de NSX.
    El nombre de archivo es nsx-node-agent-ds.yml. Puede editar este archivo o usarlo como ejemplo para su propio archivo de plantilla.
  3. Cargue la imagen Docker de NCP al registro de imágenes.
        docker load -i <tar file>
  4. Edite nsx-node-agent-ds.yml.
    Cambie el nombre de la imagen a la que se cargó.

    En Ubuntu, el archivo yaml asume que AppArmor está habilitado. Para ver si AppArmor está habilitado, consulte el archivo /sys/module/apparmor/parameters/enabled. Si AppArmor no está habilitado, realice los siguientes cambios:

    • Elimine o agregue un comentario a la siguiente línea:
      container.apparmor.security.beta.kubernetes.io/nsx-node-agent: localhost/node-agent-apparmor
    • Agregue la línea privileged:true en securityContext para el contenedor nsx-node-agent y el contenedor nsx-kube-proxy. Por ejemplo:
      securityContext:
          privileged:true
    Nota: Si se ejecuta kubelet en un contenedor que usa la imagen hyperkube, kubelet siempre notifica que AppArmor está deshabilitado, independientemente del estado real. Este es un problema conocido. Debe realizar los mismos cambios en el archivo yaml.
    Nota: En el archivo yaml, es necesario especificar que el ConfigMap que se generó para ncp.ini debe estar montado como un volumen ReadOnly. El archivo descargado yaml ya tiene esta especificación y no se debe cambiar.
  5. Cree el DaemonSet del agente del nodo de NSX con el siguiente comando.
        kubectl apply -f nsx-node-agent-ds.yml