There is a pool of IP addresses of the external load balancer that were given to the Istio-Gateway. When deploying there is a need to have a unique IP address selected for each deployment.
How can the IP address either be patched or enforced for each service or what should the Istio settings be for a external load balancer deployment in order to automatically manage the IPs?
For Loadbalancer
type service you can actually specify a IP address through loadBalancerIP
parameter, but kubernetes itself doesn't support this feature. It works with some cloud providers. Actually, I quote from the docs:
Some cloud providers allow you to specify the loadBalancerIP. In those cases, the load-balancer is created with the user-specified loadBalancerIP. If the loadBalancerIP field is not specified, the loadBalancer is set up with an ephemeral IP address. If you specify a loadBalancerIP but your cloud provider does not support the feature, the loadbalancerIP field that you set is ignored.
On GKE it works. We have couple of clusters with Istio where we are forcing the IP address of istio-ingressgateway
service.
Note that istio-ingressgateway
is just a kubernetes service, so you have to treat it as that.