-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Allow healthcheck on different port for non-EDS cluster types #439
Comments
Please see linked PR for a first attempt at this. Needs cleanup. |
I'd like to +1 this feature, we have a few cases where we'd like to be able to health check a port that's different from the "traffic port" |
I looked through the previous PR. It sounds like the idea to add a "health check address" to each endpoint in EDS was uncontroversial but figuring out a clean design for specifying an alternate health check port when using strict or logical DNS (and probably static hosts) was difficult. Would it be reasonable to add the "health check address" config option to EDS first, and then follow up with the other ways of specifying cluster membership later on? |
@mpuncel yes, at this point I think it's reasonable to just make this happen for EDS only which I think would not be too hard. I would add alternate HC port information to https://github.com/envoyproxy/data-plane-api/blob/master/envoy/api/v2/endpoint/endpoint.proto#L19 most likely. If you want to tackle I would do a data-plane-api PR and we can discuss the details there. |
@mpuncel, if you're not on this, may I try to propose a fix for this case? |
@dio go for it! |
…t port (#3007) This patch adds a way to override endpoint health check port. Only EDS cluster is affected for now. Risk Level: Low. This is an optional feature. Testing: Unit test Docs Changes: To be updated (unhiding) Release Notes: To be updated Partially remedies #439 API Changes: To be updated (unhiding) Signed-off-by: Dhi Aurrahman <[email protected]>
@mattklein123 I thought we want to have alternate health check port for all setup, including when using strict or logical DNS (and probably static hosts) as well. |
@dio OK fair enough we can keep it open to track. |
Currently, for |
If we change https://github.com/envoyproxy/envoy/blob/master/api/envoy/api/v2/cds.proto#L158 to the following: message Host {
oneof host_specifier {
option (validate.required) = true;
core.Address address = 1;
endpoint.Endpoint endpoint = 2;
}
}
repeated Host hosts = 7; will it break wire compatibility? Since I guess repeated |
Yes I think it will break wire compatibility. You may need to add a new repeated hosts field and deprecate the old hosts addresses field or something like that. That is probably a better long term solution. |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
This is still an important one for our organization, fwiw. |
@bobzilladev AFAIK this is implemented already for EDS, just not for non-EDS. Right @dio? Maybe we should change the title. |
@mattklein123 do we even need this for non-EDS, given that we can embed |
@mattklein123 yes for EDS it is there. While for the Sorry for the delay in the implementation. I'll start again next week. |
Update: #3783 is part of this effort. |
Update. I have submitted: #3864 to fix this. |
This patch implements load_assigment field in CDS' Cluster. This change specifically adds the implementation of the new load_assigment field for clusters with discovery-type: STATIC, STRICT_DNS and LOGICAL_DNS. While adding this load_assigment field implementation to Cluster, this patch also allows specifying optional (active) health check config per specified upstream host. Risk Level: medium Testing: unit tests Docs Changes: This unhides docs for endpoint health check config Release Notes: N/A Fixes #439 Signed-off-by: Dhi Aurrahman <[email protected]>
* Cancel check call on destroy
Signed-off-by: Smark <[email protected]>
This is an supplement for this issue #439 Risk Level: Low Testing: unit test Signed-off-by: Tony Han <[email protected]>
Does this work for non-xDS clusters (e.g. static and/or strict_dns)? |
Description: fixing some formatting issues from #431 Risk Level: low Signed-off-by: Jose Nino <[email protected]> Signed-off-by: JP Simard <[email protected]>
Description: fixing some formatting issues from #431 Risk Level: low Signed-off-by: Jose Nino <[email protected]> Signed-off-by: JP Simard <[email protected]>
The http healthcheck will allow a path but not a port, which is problematic for existing Dropwizard-based services which by default to have the healthcheck endpoint on a separate admin port. There are also instances of proxies where a tcp check is being done to check the health of the proxy but the traffic is going over different ports.
Envoy would need a healthcheck_port in the static configuration and the SDS API to support being a drop-in replacement for HAProxy under these conditions.
http://www.dropwizard.io/1.0.6/docs/manual/core.html#health-checks
The text was updated successfully, but these errors were encountered: