Load-balance the Kubernetes apiserver
This is separate from offering a load balancer for user workloads (though it could reuse the solution).
kubectl on client's machines talks to the apiserver component. That component runs on the master nodes (currently 3). If one of the master nodes goes down, the other master nodes will keep going, including their apiservers; however if it was the one the client was configured to talk to, using kubectl will still fail.
A solution is to put all apiservers behind a common load balancer and point the users' kubectl to the load balancer's domain/IP. Another solution is to rely on DNS.
There is an issue open to fix this in kubelet, but not much movement: https://github.com/kubernetes/kubernetes/issues/18174
Edited by Remi Rampin