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

Document role of cloudprovider healthchecks in L4 lb #32827

Closed
aaskey opened this issue Sep 15, 2016 · 6 comments
Closed

Document role of cloudprovider healthchecks in L4 lb #32827

aaskey opened this issue Sep 15, 2016 · 6 comments
Labels
area/kubectl kind/documentation Categorizes issue or PR as related to documentation. sig/network Categorizes an issue or PR as relevant to SIG Network.

Comments

@aaskey
Copy link

aaskey commented Sep 15, 2016

A load balancer type of service/deployment is created on GKE using the command below:

kubectl run my-nginx --image=nginx --port=80
kubectl expose deployment my-nginx --port=80 --type=LoadBalancer

A load balancer was created automatically. This is nice. However, from Google Cloud Platform/Networking/Load balancing, it complains:

This load balancer has no health check, so traffic will be sent to all instances regardless of their status.

Should the load balancer to be created with health check by default? I don't see an option to enable load balancer health check in service manifest. Would such an option be necessary in case we don't want to enable health check all the time?

@bprashanth bprashanth changed the title Load balancer has no health check Document rols of cloudprovider healthchecks in L4 lb Sep 15, 2016
@bprashanth bprashanth added team/cluster kind/documentation Categorizes issue or PR as related to documentation. labels Sep 15, 2016
@bprashanth
Copy link
Contributor

kubelet does container level health checks so traffic doesn't go to unhealthy pods. If no pods are healthy, you (should) get an connection reset (RST).

If you use the source ip preservation feature (kubernetes/enhancements#27, alpha in 1.4) the service controller will program health checks for you so a node without endpoints doesn't get traffic.

We should probably surface this through docs.

@bprashanth bprashanth added the sig/network Categorizes an issue or PR as relevant to SIG Network. label Sep 15, 2016
@bprashanth bprashanth changed the title Document rols of cloudprovider healthchecks in L4 lb Document role of cloudprovider healthchecks in L4 lb Sep 15, 2016
@aaskey
Copy link
Author

aaskey commented Sep 16, 2016

Retaining source ip info is very important for our applications. We are happy to see this source ip preservation feature.

Does GCE L4 LB replace original source IP with its own IP address?

@aaskey aaskey closed this as completed Sep 23, 2016
@renaudguerin
Copy link

I've created L4 LBs in GCP using a "type: Loadbalancer" service definition, which doesn't create health checks for the nodes at the LB level (or didn't as of 1.4)

Am I correct in thinking that Kubelet's container level health checks don't help at all when a node is completely down (e.g. during a cluster version upgrade), and the L4 LB keeps sending traffic to it because it has no health checks to know it's down, and the node upgrade process hasn't temporarily removed the down node manually from the LB's backends either ?

This is obviously causing service disruptions and IIUC, the current solution to this is to use the source IP preservation feature, even when you don't care about the source IP, just because it has the side effect of creating proper health checks on L4 LBs ?

Correct ?

@thockin
Copy link
Member

thockin commented Jan 10, 2017

I reopened #14661

What you're doing is a viable workaround, but it is a workaround.

@mdelio

@renaudguerin
Copy link

@thockin That's what I thought yes, but there isn't currently a better solution apart from that SIPP side effect, correct ?

@thockin
Copy link
Member

thockin commented Jan 10, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kubectl kind/documentation Categorizes issue or PR as related to documentation. sig/network Categorizes an issue or PR as relevant to SIG Network.
Projects
None yet
Development

No branches or pull requests

5 participants