Custom load balancers

Charmed Kubernetes supports setting a custom IP address for the control plane. There are two ways of achieving this, depending on which type of load balancing solution you wish to configure:

  • If you have a virtual IP to place in front of machines, configure the settings on the kubeapi-load-balancer charm.

  • If a full load balancing solution is in place such as an F5 appliance, remove the kubeapi-load-balancer and use the settings on the kubernetes-control-plane charm to configure the load balancer. This is also the appropriate step if you want to use a load balancer integrated with a particular cloud (e.g OctaviaLB for OpenStack). See the relevant entry in the "Cloud Integration" section of the documentation for more on native load balancers.

Both solutions are described in the sections below.

Virtual IP in front of kubeapi-load-balancer

If you have a virtual IP in front of the kubeapi-load-balancer units which isn't charm based, you should use the loadbalancer-ips configuration to specify them:

juju config kubeapi-load-balancer loadbalancer-ips="10.0.0.1 10.0.0.2"

Multiple IP addresses should be given as a space-separated list.

Custom load balancer in front of kubernetes-control-plane charm

If you have a full load balancer such as an F5 appliance or OpenStack's Neutron, use the configuration options on the kubernetes-control-plane charm and forgo kubeapi-load-balancer entirely.

Remove the kubeapi-load-balancer application if it exists:

juju remove-application kubeapi-load-balancer

Then configure the IP addresses provided by the load balancing solution with the kubernetes-control-plane charm.

juju config kubernetes-control-plane loadbalancer-ips="192.168.1.1 192.168.2.1"

Multiple IP addresses should be given as a space-separated list.

We appreciate your feedback on the documentation. You can edit this page or file a bug here.

See the guide to contributing or discuss these docs in our public Mattermost channel.