Il existe deux méthodes pour configurer certaines ressources de mise en réseau pour NCP. Cette section décrit la méthode d'utilisation de l'onglet Mise en réseau dans l'interface utilisateur de NSX Manager.

Dans le fichier de configuration NCP ncp.ini, vous pouvez spécifier les ressources NSX-T à l'aide de leurs UUID ou de leur nom.

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-veille si vous prévoyez de configurer des règles NAT sur cette passerelle. Sinon, définissez-le sur actif-actif. Activez la redistribution des 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 et sécurité avancées 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 :
scope: 'ncp/node_name', value: '<node_name>'
scope: 'ncp/cluster', value: '<cluster_name>'

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.

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 > 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. Notez que vous ne pouvez pas définir container_ip_blocks sur des adresses UUID et 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 PCF) 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.

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. Notez que vous ne pouvez pas définir external_ip_pools sur des adresses UUID et CIDR.

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.

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 0 ou d'une passerelle de niveau 1. S'il s'agit d'une passerelle de niveau 1, vous devez la connecter à 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.