L'agent de nœud NSX est un DaemonSet où chaque espace exécute deux conteneurs. Un conteneur exécute l'agent de nœud NSX, dont la responsabilité principale consiste à gérer les interfaces réseau de conteneur. Il interagit avec le plug-in CNI et Kubernetes API Server. L'autre conteneur exécute le proxy kube NSX, dont la seule responsabilité consiste à mettre en œuvre l'abstraction du service Kubernetes en convertissant les adresses IP du cluster en adresses IP d'espace. Il met en œuvre la même fonctionnalité que le proxy kube en amont.

Procédure

  1. Téléchargez l'image Docker de NCP.
    Le nom de fichier est nsx-ncp-xxxxxxx.tar, où xxxxxxx est le numéro de build.
  2. Téléchargez le modèle yaml DaemonSet de l'agent de nœud NSX.
    Le nom de fichier est nsx-node-agent-ds.yml. Vous pouvez modifier ce fichier ou l'utiliser comme exemple pour votre propre fichier de modèle.
  3. Chargez l'image Docker de NCP dans votre registre d'images.
        docker load -i <tar file>
  4. Modifiez le fichier nsx-node-agent-ds.yml.
    Changez le nom de l'image pour celui qui a été chargé.

    Pour Ubuntu, le fichier yaml suppose que AppArmor est activé. Pour voir si AppArmor est activé, vérifiez le fichier /sys/module/apparmor/parameters/enabled. Si AppArmor n'est pas activé, apportez les modifications suivantes :

    • Supprimez ou commentez la ligne suivante :
      container.apparmor.security.beta.kubernetes.io/nsx-node-agent: localhost/node-agent-apparmor
    • Ajoutez la ligne privileged:true sous securityContext pour le conteneur nsx-node-agent et le conteneur nsx-kube-proxy. Par exemple :
      securityContext:
          privileged:true
    Note : Il existe un problème selon lequel kubelet signale toujours AppArmor comme étant désactivé quel que soit l'état réel, si kubelet est exécuté à l'intérieur d'un conteneur qui utilise l'image hyperkube. Vous devez apporter les mêmes modifications mentionnées ci-dessus dans le fichier yaml.
    Note : Dans le fichier yaml, vous devez spécifier que le ConfigMap généré pour ncp.ini doit être monté en tant que volume en lecture seule. Le fichier yaml téléchargé a déjà cette spécification, qui ne doit pas être modifiée.
  5. Créez le DaemonSet de l'agent de nœud NSX avec la commande suivante.
        kubectl apply -f nsx-node-agent-ds.yml