-
Notifications
You must be signed in to change notification settings - Fork 38.6k
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
Comments
Confirm this from HEAD |
Maybe a random pick is also suitable. |
/cc @Random-Liu |
the main point is to retry with another server if it failed, 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. |
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 |
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. |
@kubernetes/goog-node |
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? |
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. |
Let's fold this into #18174 |
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
The text was updated successfully, but these errors were encountered: