Configurez et exécutez NCP et l'agent de nœud NSX.

Procédure

  1. Modifiez roles/ncp/defaults/main.yaml et spécifiez l'adresse IP du serveur d'API OpenShift, l'adresse IP de NSX Manager et les URL de téléchargement des fichiers yaml NCP ReplicationController et nsx-node-agent DaemonSet.
  2. À partir du répertoire openshift-ansible-nsx, exécutez le rôle ncp :
        ansible-playbook -i /PATH/TO/HOSTS/hosts ncp.yaml

Résultats

Le rôle ncp effectue les étapes suivantes :

  • Vérifiez si le projet nsx-system existe et créez-en un si ce n'est pas le cas.

        oc new-project nsx-system
  • Téléchargez le fichier YAML ncp-rbac et définissez le paramètre apiVersion sur v1.

  • Créez le compte de service pour l'espace NCP, créez un rôle de cluster qui spécifie les ressources auxquelles NCP peut accéder et liez le rôle de cluster au compte de service NCP.

  • Créez le compte de service pour l'espace nsx-node-agent, créez un rôle de cluster qui spécifie les ressources auxquelles l'agent de nœud peut accéder et liez le rôle de cluster au compte de service de l'agent de nœud.

        oc apply -f /tmp/ncp-rbac.yml
  • Obtenez le jeton associé aux comptes de service ci-dessus et enregistrez-le dans /etc/nsx-ujo/<service_account>_token :

        secret=`kubectl get serviceaccount ncp-svc-account -o yaml | grep -A1 secrets | tail -n1 | awk {'print $3'}`
        kubectl get secret $secret -o yaml | grep 'token:' | awk {'print $2'} | base64 -d > /etc/nsx-ujo/ncp_token
        secret=`kubectl get serviceaccount nsx-node-agent-svc-account -o yaml | grep -A1 secrets | tail -n1 | awk {'print $3'}`
        kubectl get secret $secret -o yaml | grep 'token:' | awk {'print $2'} | base64 -d > /etc/nsx-ujo/node_agent_token
  • Téléchargez le fichier YAML SecurityContextConstraint (SCC) ncp-os-scc.yml pour NCP et créez le SCC basé sur ce fichier.

        oc apply -f ncp-os-scc.yml

    Le fichier YAML SCC spécifie le type SELinux comme spc_t pour s'assurer que NCP/nsx-node-agent dispose d'autorisations d'accès sous SELinux. C'est,

        seLinuxContext:
          seLinuxOptions:
          type: spc_t

    Dans le fichier YAML SCC, sous seLinuxContextseLinuxOptions, le niveau de contrôle d'accès basé sur l'étiquette SELinux est défini sur s0:c0:c1023 pour autoriser l'accès de ncp/node-agent aux cibles de catégories de fichiers différents.

  • Ajoutez le fichier SCC à l'utilisateur qui crée le NCP et les espaces de l'agent de nœud NSX. Par exemple, pour ajouter le fichier SCC à l'utilisateur par défaut dans le projet actuel :

        oc adm policy add-scc-to-user ncp-scc -z default
  • Ajoutez le fichier SCC aux comptes de service de NCP et de l'agent de nœud NSX :

        oc adm policy add-scc-to-user ncp-scc -z ncp-svc-account
        oc adm policy add-scc-to-user ncp-scc -z nsx-node-agent-svc-account
  • Téléchargez les fichiers YAML pour NCP ReplicationController (RC) et nsx-node-agent DaemonSet (DS), et mettez à jour le ConfigMap.

  • Téléchargez et chargez l'image NCP (nsx-node-agent utilise la même image).

  • Configurez le compte de service et configurez les fichiers SecurityContextConstraint pour NCP et nsx_node_agent requis.

  • Créez les fichiers NCP ReplicationController et nsx-node-agent DaemonSet.

Note:

NCP ouvre des connexions HTTP persistantes au serveur Kubernetes API pour surveiller les événements de cycle de vie des ressources Kubernetes. Si une défaillance du serveur API ou une panne de réseau provoque l'obsolescence des connexions TCP de NCP, vous devez redémarrer NCP pour lui permettre de rétablir les connexions au serveur API. Sinon, NCP ratera les nouveaux événements.