Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kubelet's --api-servers flag doesn't honor multiple servers #19152

Closed
unixist opened this issue Dec 28, 2015 · 13 comments
Closed

kubelet's --api-servers flag doesn't honor multiple servers #19152

unixist opened this issue Dec 28, 2015 · 13 comments
Labels
sig/node Categorizes an issue or PR as relevant to SIG Node.

Comments

@unixist
Copy link

unixist commented Dec 28, 2015

kubelet's usage suggests that it'll do some sort of round-robin when hitting apiservers, but my experience says that it only uses the first one specified.

A brief search thru the code seems to corroborate that hypothesis: https://goo.gl/60iweW. Can we adjust the usage to say "incomplete"? Or better, just fix this? It'd be nice to not have to have another HA solution in front of HA apiservers.

kube-1.0.1

@dalanlan
Copy link
Contributor

@adohe-zz
Copy link

@unixist @dalanlan I think this is still in progress. A simple round robin should be enough for multiple api server.

@adohe-zz
Copy link

Maybe a random pick is also suitable.

@Random-Liu
Copy link
Member

/cc @Random-Liu

@ant31
Copy link
Member

ant31 commented Dec 29, 2015

the main point is to retry with another server if it failed,
it can be random, round robin...

if the current implementation ( first one always) had a failover to the next one, it would be enough for the HA requirements.

@dalanlan
Copy link
Contributor

the main point is to retry with another server if it failed,
it can be random, round robin...
if the current implementation ( first one always) had a failover to the next one, it would be enough for the HA requirements.

kubelet won't make a new clientConfig on the fly IIUC.

@ant31
Copy link
Member

ant31 commented Dec 29, 2015

If I give 2+ external api-endpoints to a service and one of those endpoints is down, I would expect the service to continue to work using the remaining api-endpoints .

If not, it's unclear for me the intention of this setting

@adohe-zz
Copy link

for a possible implementation, kube client can try to use the same endpoint as long as the endpoint continues to work well. If the preferred endpoint isn't functioning properly, kube client should do a round robin rotation(or random pick) over other available endpoints.

@fgrzadkowski fgrzadkowski added the sig/node Categorizes an issue or PR as relevant to SIG Node. label Dec 30, 2015
@fgrzadkowski
Copy link
Contributor

@kubernetes/goog-node

@adohe-zz
Copy link

adohe-zz commented Jan 4, 2016

within the current kube client implementation, it's a little bit difficult to support multiple api servers.

@mqliang
Copy link
Contributor

mqliang commented Jan 7, 2016

within the current kube client implementation, it's a little bit difficult to support multiple api servers.

Why not connect to a Nginx, and let Nginx foreword request to multiple api servers?

@ghodss
Copy link
Contributor

ghodss commented Jan 9, 2016

Why not connect to a Nginx, and let Nginx foreword request to multiple api servers?

Introduces another point of failure. If the nginx is on its own box, you have to now HA and load balance across those which is the same problem. If the nginx is on the master servers, if the entire master server goes down hard you are no longer HA.

@mikedanese
Copy link
Member

Let's fold this into #18174

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sig/node Categorizes an issue or PR as relevant to SIG Node.
Projects
None yet
Development

No branches or pull requests

9 participants