kubelet only choose the first api-server given, caused all services unavailable

7/25/2016

one of The kubelet's start parameter is -api-servers=[]: List of Kubernetes API servers for publishing events, and reading pods and services. (ip:port), comma separated.

It appears that it's designed for api-server's HA, only if one of the api server is alive, that everything will work well.

But I found that the kubelet would only choose the first api server, even if I gave it 3 api -servers. If the first api-server was stopped, all the services were unavailable.

The version I used is: Kubernetes v1.2.1

So are there any ways to avoid this issue, Hopefully I just use it in a wrong way. Or I may fix it in the kubelet..

Any comments are appreciated.

-- anzhsoft
kubernetes

1 Answer

7/25/2016

This is expected.

In short, current model for HA expects load balancing (e.g., gcplb/elb/nginx/haproxy) in front of the apiserver, so that node components don't have to be aware of multiple apiservers. However, it's recognized that there is a need to pass multiple apiserver endpoints to kubernetes components, and is slotted for to be fixed for kubernetes v1.4.

See the detailed discussions in https://github.com/kubernetes/kubernetes/issues/18174

-- Yu-Ju Hong
Source: StackOverflow