It is important to keep in mind the caveats while configuring the NSX Advanced Load Balancer in your vSphere IaaS control plane environment.

An ingress does not get an external IP from the NSX Advanced Load Balancer in the following cases:
  • If a host name is not specified in the ingress configuration.
  • If the ingress is configured with the defaultBackend configuration option instead of the host name.
By default, an ingress resource in Kubernetes must define the host name in the controller configuration to assign it an external IP. This is required as the NSX Advanced Load Balancer uses virtual hosting for traffic in the virtual services that are created corresponding to the Kubernetes ingresses. For more information about the defaultBackend configuration option, see https://kubernetes.io/docs/concepts/services-networking/ingress/#default-backend.

If an ingress has the same host name as an ingress in a different Namespace, it does not get an external IP from the NSX Advanced Load Balancer. By default, NSX Advanced Load Balancer assigns a unique VIP for each Namespace which means that all ingresses in a single Namespace share the same VIP. Consequently, two ingresses from different Namespaces are assigned distinct VIPs. But if they have the same host name, the DNS server does not know which IP address to resolve the host name to.