NCP créera un serveur virtuel et un pool d'équilibreur de charge de couche 4 pour chaque port de service.

Détails de cette fonctionnalité :
  • TCP et UDP sont pris en charge.
  • Chaque service aura une adresse IP unique.
  • Une adresse IP est allouée au service à partir d'un pool d'adresses IP externe basé sur le champ loadBalancerIP dans la définition LoadBalancer. Le champ loadBalancerIP peut être vide, avoir une adresse IP ou le nom ou l'ID d'un pool d'adresses IP. Si le champ loadBalancerIP est vide, l'adresse IP est allouée à partir du pool d'adresses IP externe spécifié par l'option external_ip_pools_lb dans la section [nsx_v3] de ncp.ini. Si l'option external_ip_pools_lb n'existe pas, le pool spécifié par external_ip_pools est utilisé. Le service de LoadBalancer est exposé sur cette adresse IP et sur le port de service.
  • Vous pouvez spécifier un pool d'adresses IP différent en modifiant la configuration et en redémarrant NCP.
  • Le pool d'adresses IP spécifié par loadBalancerIP doit avoir la balise scope: ncp/owner, tag: cluster:<cluster_name>.

  • En mode de stratégie, un service de type LoadBalancer sans sélecteur est pris en charge. Pour un tel service, l'adresse IP SNAT de l'équilibreur de charge NSX-T est l'adresse IP du service de type LoadBalancer. L'adresse IP SNAT de l'équilibreur de charge NSX-T sera mise à jour si vous mettez à jour l'adresse IP du service de type LoadBalancer. Notez qu'un service sans sélecteur ne peut pas être configuré comme point de terminaison d'un autre service sans sélecteur.
  • Les erreurs sont annotées dans un service. L'erreur clé est ncp/error.loadbalancer. Les erreurs possibles sont :
    • ncp/error.loadbalancer : IP_POOL_NOT_FOUND

      Cette erreur indique que vous spécifiez loadBalancerIP : <nsx-ip-pool> mais <nsx-ip-pool> n'existe pas. Le service sera inactif. Pour corriger l'erreur, spécifiez un pool d'adresses IP valide, supprimez et recréez le service.

    • ncp/error.loadbalancer : IP_POOL_EXHAUSTED

      Cette erreur indique que vous spécifiez loadBalancerIP : <nsx-ip-pool> mais le pool d'adresses IP a épuisé ses adresses IP. Le service sera inactif. Pour corriger l'erreur, spécifiez un pool d'adresses IP ayant des adresses IP disponibles, supprimez et recréez le service.

    • ncp/error.loadbalancer : IP_POOL_NOT_UNIQUE

      Cette erreur indique que plusieurs pools d'adresses IP portent le nom spécifié par loadBalancerIP : <nsx-ip-pool>. Le service sera inactif.

    • ncp/error.loadbalancer : POOL_ACCESS_DENIED

      Cette erreur indique que le pool d'adresses IP spécifié par loadBalancerIP n'a pas la balise scope: ncp/owner, tag: cluster:<cluster_name> ou le cluster spécifié dans la balise ne correspond pas au nom du cluster Kubernetes.

    • ncp/error.loadbalancer : LB_VIP_CONFLICT

      Cette erreur indique que l'adresse IP dans le champ loadBalancerIP est la même que celle d'un service actif. Le service sera inactif.

  • L'équilibreur de charge de couche 4 prend en charge la mise à l'échelle automatique. Si un service LoadBalancer Kubernetes est créé ou modifié pour qu'il requiert des serveurs virtuels supplémentaires et que l'équilibreur de charge de couche 4 existant n'a pas la capacité, un nouvel équilibreur de charge de couche 4 sera créé. NCP supprimera également les équilibreurs de charge de couche 4 qui n'ont plus aucun serveur virtuel associé. Cette fonctionnalité est activée par défaut. Si vous souhaitez désactiver cette fonctionnalité, vous devez définir l4_lb_auto_scaling sur false dans le ConfigMap de NCP.