Il existe deux méthodes pour configurer certaines ressources de mise en réseau pour NCP. Cette section décrit la configuration des ressources en mode de stratégie.

Dans le fichier de configuration NCP ncp.ini, vous devez spécifier les ressources NSX à l'aide de leurs ID de ressource. En général, le nom et l'ID d'une ressource sont identiques. Pour être entièrement sûr, sur l'interface utilisateur Web de NSX Manager, cliquez sur l'icône à trois points qui affiche les options d'une ressource et sélectionnez Copier le chemin d'accès dans le Presse-papiers. Collez le chemin d'accès à une application telle que Notepad. La dernière partie du chemin d'accès est l'ID de la ressource.

Passerelles et segment

  1. Créez un segment pour les nœuds Kubernetes, par exemple, Segment1.
  2. Créez une passerelle de niveau 0, par exemple, T0GW1. Définissez l'option top_tier_router dans la section [nsx_v3] de ncp.ini avec l'ID de la passerelle si vous ne disposez pas d'une topologie de niveau 1 partagée. Reportez-vous aux informations ci-dessous pour plus d'informations sur la configuration d'une topologie de niveau 1 partagée. Définissez le mode HA sur actif-en veille si vous prévoyez de configurer des règles NAT sur cette passerelle. Sinon, définissez-le sur actif-actif. Activez la redistribution de routes. Configurez également cette passerelle pour l'accès au réseau externe.
  3. Créez une passerelle de niveau 1, par exemple, T1GW1. Connectez cette passerelle à la passerelle de niveau 0.
  4. Configurez l'annonce du routeur pour T1GW1. Les routes NAT et connectés à NSX au minimum doivent être activées.
  5. Connectez T1GW1 à Segment1. Assurez-vous que l'adresse IP du port de la passerelle n'est pas en conflit avec les adresses IP des nœuds Kubernetes.
  6. Pour chaque machine virtuelle de nœud, assurez-vous que le vNIC de trafic de conteneur est attaché au commutateur logique qui est automatiquement créé. Vous pouvez le trouver dans l'onglet Mise en réseau avec le même nom que le segment, c'est-à-dire Segment1.
NCP doit connaître l'identifiant de VIF du vNIC. Vous pouvez voir les ports de Segment1 qui sont automatiquement créés en accédant à Mise en réseau > Segments. Ces ports ne sont pas modifiables, sauf pour la propriété de leur balise. Ces ports doivent avoir les balises suivantes. Pour une balise, spécifiez le nom du nœud. Pour l'autre balise, spécifiez le nom du cluster. Pour la portée, spécifiez la valeur appropriée comme indiqué ci-dessous.
Balise Portée
Nom du nœud ncp/node_name
Nom du cluster ncp/cluster
Ces balises sont automatiquement propagées vers les ports de commutateur logique correspondants. Si le nom du nœud change, vous devez mettre à jour la balise. Pour récupérer le nom du nœud, vous pouvez exécuter la commande suivante :
kubectl get nodes

Si vous souhaitez étendre le cluster Kubernetes alors que NCP est en cours d'exécution, par exemple, ajouter des nœuds au cluster, vous devez ajouter les balises aux ports de commutateur correspondants avant d'exécuter « kubeadm join ». Si vous oubliez d'ajouter les balises avant d'exécuter « kubeadm join », les nouveaux nœuds n'auront pas de connectivité. Dans ce cas, vous devez ajouter les balises et redémarrer NCP pour résoudre le problème.

Pour identifier le port de commutateur pour une machine virtuelle de nœud, vous pouvez effectuer l'appel d'API suivant :
/api/v1/fabric/virtual-machines
Dans la réponse, recherchez la machine virtuelle de nœud et récupérez la valeur de l'attribut « external_id ». Ou vous pouvez effectuer l'appel d'API suivant :
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
Une fois que vous avez l'identifiant externe, vous pouvez l'utiliser pour récupérer les VIF de la machine virtuelle avec l'API suivante. Notez que les VIF ne sont pas renseignés tant que la machine virtuelle n'est pas démarrée.
/api/v1/search -G --data-urlencode \
"query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \
_exists_:lport_attachment_id)"

L'attribut lport_attachment_id est l'identifiant de VIF de la machine virtuelle de nœud. Vous pouvez ensuite trouver le port logique de ce VIF et ajouter les balises requises.

Blocs d'adresses IP pour des espaces Kubernetes

Accédez à Mise en réseau > Gestion des adresses IP > Pools d'adresses IP > Blocs d'adresses IP pour créer un ou plusieurs blocs d'adresses IP. Spécifiez le bloc d'adresses IP au format CIDR. Définissez l'option container_ip_blocks dans la section [nsx_v3] de ncp.ini dans les UUID des blocs d'adresses IP. Si vous souhaitez que NCP crée automatiquement des blocs d'adresses IP, vous pouvez définir l'option container_ip_blocks avec une liste d'adresses séparées par des virgules au format CIDR.

Par défaut, les projets partagent des blocs d'adresses IP spécifiés dans container_ip_blocks. Vous pouvez créer des blocs d'adresses IP spécifiquement pour les espaces de noms non-SNAT (pour Kubernetes) ou pour les clusters (pour TAS) en définissant l'option no_snat_ip_blocks dans la section [nsx_v3] de ncp.ini.

Si vous créez des blocs d'adresses IP non SNAT alors que NCP est en cours d'exécution, vous devez redémarrer NCP. Sinon, NCP continuera d'utiliser les blocs d'adresses IP partagés jusqu'à leur épuisement.

Lorsque vous créez un bloc d'adresses IP, le préfixe ne doit pas être supérieur à la valeur de l'option subnet_prefix dans le fichier de configuration de NCP ncp.ini. La valeur par défaut est 24.

Vous ne devez pas modifier le bloc d'adresses IP si NCP a démarré des adresses IP allouées à partir de celui-ci. Si vous souhaitez utiliser un bloc différent, assurez-vous que NCP n'a alloué aucune adresse à partir du bloc.

Pools d'adresses IP externes

Le pool d'adresses IP externe sert à allouer des adresses IP qui seront utilisées pour la traduction d'adresses IP d'espace à l'aide de règles SNAT et pour l'exposition de contrôleurs d'entrée et de services de type LoadBalancer à l'aide de règles SNAT/DNAT, comme des adresses IP flottantes OpenStack. Ces adresses IP sont également appelées adresses IP externes.

Accédez à Mise en réseau > Gestion des adresses IP > Pools d'adresses IP pour créer un pool d'adresses IP. Définissez l'option external_ip_pools dans la section [nsx_v3] de ncp.ini dans les UUID des pools d'adresses IP. Si vous souhaitez que NCP crée automatiquement des pools d'adresses IP, vous pouvez définir l'option external_ip_pools avec une liste d'adresses séparées par des virgules au format CIDR ou à des plages d'adresses IP.

Plusieurs clusters Kubernetes utilisent le même pool d'adresses IP externes. Chaque instance NCP utilise un sous-ensemble de ce pool pour le cluster Kubernetes qu'il gère. Par défaut, le même préfixe de sous-réseau pour les sous-réseaux d'espace sera utilisé. Pour utiliser une taille de sous-réseau différente, mettez à jour l'option external_subnet_prefix dans la section [nsx_v3] dans ncp.ini.

Vous pouvez spécifier un pool d'adresses IP différent en modifiant le fichier de configuration et en redémarrant NCP.

Vous ne devez pas modifier le pool d'adresses IP si NCP a démarré des adresses IP allouées à partir de celui-ci. Si vous souhaitez utiliser un pool différent, assurez-vous que NCP n'a alloué aucune adresse à partir du pool.

Topologie de niveau 1 partagée

Pour activer une topologie de niveau 1 partagée, effectuez les configurations suivantes :
  • Définissez l'option top_tier_router sur l'ID d'une passerelle de niveau 1. Connectez la passerelle de niveau 1 à une passerelle de niveau 0 pour les connexions externes.
  • Si SNAT pour le trafic d'espaces est activé, modifiez la liaison montante du segment pour les nœuds Kubernetes vers la même passerelle de niveau 0 ou de niveau 1 qui est définie dans top_tier_router.
  • Définissez l'option single_tier_topology sur Vrai. La valeur par défaut est Faux.
  • Si vous souhaitez que NCP configure automatiquement le routeur de niveau supérieur en tant que passerelle de niveau 1, annulez l'option top_tier_router et définissez l'option tier0_gateway. NCP va créer une passerelle de niveau 1 et la relier à la passerelle de niveau 0 spécifiée dans l'option tier0_gateway.

Remarque : après avoir défini l'option top_tier_router et créé des espaces de noms, vous ne pouvez pas mettre à jour top_tier_router avec une valeur différente et redémarrer NCP. Cette opération n'est pas prise en charge.