kontena / akrobateo

Akrobateo is a simple Kubernetes operator to expose in-cluster LoadBalancer services as node hostPorts using DaemonSets.
Apache License 2.0
110 stars 15 forks source link

akrobateo-lb with single External-IP #33

Open zeknox opened 4 years ago

zeknox commented 4 years ago

Hi there! Love this project and the need for a universal load balancer outside of cloud load balancers.

I've been testing the akrobateo load balancers on a GKE cluster which has 3 worker nodes. It seems that since the cluster has multiple worker nodes that when a service of type:LoadBalancer is created, akrobateo will in turn spin up 3 pods and expose the service port on 3 External IP addresses.

Is there a way with the akrobateo project to act more like a true load balancer where even in a larger worker node cluster the kubernetes service of type:LoadBalancer is only given a single external IP address which acts as the sole entry point into the cluster? Thanks!

jnummelin commented 4 years ago

As arobateo really "just" deploys a IP forwarding rule, deploying it on only single node will give you a SPOF. Hence the default functionality to deploy the LB pods (just the iptable forwarding rule basically) as DaemonSet. Also akrobateo does not have any capability to get a true VIP for the LB service like those cloud LB implementations have.

I opened one issue long time ago to look at some configurability for the behaviour: https://github.com/kontena/akrobateo/issues/16