Kubernetes Service LoadBalancer "EXTERNAL-IP" remains "<none>" instead of taking worker nodes public IP addresses

12/12/2019

I have 5 VPS with a public network interface for each, for which I have configured a VPN.

  • 3 nodes are Kubernetes masters where I have set the Kubelet --node-ip flag as their private IP address.
  • One of the 3 nodes have a HAProxy load balancer for the Kubernetes masters, listening on the private IP, so that all the nodes used the private IP address of the load balancer in order to join the cluster.
  • 2 nodes are Kubernetes workers where I didn't set the Kubelet --node-ip flag so that their node IP is the public address.

The cluster is healthy and I have deploy my application and its dependencies.

Now I'd like to access the app from the Internet, so I've deployed a edge router and created a Kubernetes Service with the type LoadBalancer.

The service is well created but never takes the worker nodes' public IP addresses as EXTERNAL-IP.

Assigning the IP addresses manually works, but obviously want that to be automatic.

I have read about the MetalLb project, but it doesn't seem to fit in my case as it is supposed to have a range of IP addresses to distribute, while here I have one public IP address per node, and not in the same range.

So who can I configure Kubernetes so that my Service of type LoadBalancer gets automatically the public IP addresses as EXTERNAL-IP?

-- ZedTuX
kubernetes
kubernetes-networking
vpn

0 Answers