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

nginx' buffering on kubeapi-loadbalancer is breaking kubectl #172

Closed
axinojolais opened this Issue Jan 4, 2017 · 1 comment

Comments

Projects
None yet
2 participants
@axinojolais
Copy link

axinojolais commented Jan 4, 2017

Hi,

I'm adding a Juju action to create and delete a docker registry, much like the currently existing "microbot" action. The creation works fine, but the deletion always fails, specifically the deletion of the replicationcontroller.

I found the root cause to be the bufferring of nginx in the kubeapi-loadbalancer unit. More specifically, when the "kubectl delete" action is run against a replicationcontroller, kubectl tries to monitor the "downscaling" of said replicationcontroller using a URL in the form of :

/api/v1/watch/namespaces/default/replicationcontrollers?fieldSelector=metadata.name%3Dkube-registry-v0

This "/watch/" URLs streams data, but because nginx buffers said data (presumably until the connection is closed from the client, which it never is because the client doesn't receive data !), it never reaches the kubectl client. The connection is then closed by nginx, because of the "proxy_read_timeout 90;" config option.

This is fixed by adding the following to the nginx configuration :

proxy_buffering off;

However, I am no nginx expert, so I'm not sure if there are other consequences to turning off this buffering.

Thanks

@lazypower

This comment has been minimized.

Copy link
Contributor

lazypower commented Jan 10, 2017

@axinojolais I think we're good to enable this at least in the short term. I have a lofty goal of replacing this nginx load balancer with an haproxy based LB for better connectivity support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment