Newly created load balancer services within a workload cluster are propagated to the Supervisor cluster successfully, but do not receive an external IP.
While connected to the workload cluster context with the affected new load balancer service:
kubectl get svc -n <load balancer service namespace>
kubectl describe svc -n <load balancer namespace> <load balancer service name>
"error syncing load balancer: failed to ensure load balancer: virtualmachineservice IP not found"
While connected to the Supervisor cluster context, the following symptoms are observed:
kubectl get virtualmachineservice -n <workload cluster namespace>
kubectl get pods -n vmware-system-ako
kubectl logs -n vmware-system-ako <ako pod name>
returned err {"code":0,"message":"map[error:No available free IPs!]", "Verb":"POST","Url":"<avi-manager-FQDN>:443//api/vs/vip","HttpStatusCode":400} with response null
msg: Error in rest operation is not of type AviError, err: Error during POST: Encountered an error on POST request to URL <avi-manager-FQDN>:443//api/vsvip: HTTP code: 400: error from Avi: map[error:No available free IPs!]
key: <user>/<domain-c>--<zone>-<load balancer service name from Supervisor cluster>, msg: no Free IP available, adding to slow retry queue
vSphere Supervisor
NSX-ALB
AVI cannot assign an external IP to the new load balancer service because the allocated IP pool or range in AVI does not have any available or free IP address to assign.
You can resolve this issue by making IP addresses available for the new load balancer service.
A YAML example of a simple load balancer service using nginx can be found below: