forked from envoyproxy/envoy
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
healthcheck: exclude hosts when receiving x-envoy-immediate-health-ch…
…eck-fail (envoyproxy#14772) * Send x-envoy-immediate-health-check-fail on all responses that the health check filter processes, not just non-HC responses. * Exclude hosts from load balancing when x-envoy-immediate-health-check-fail is received. * Can be reverted via the envoy.reloadable_features.health_check.immediate_failure_exclude_from_cluster feature flag. Fixes envoyproxy#9246 Signed-off-by: Matt Klein <[email protected]>
- Loading branch information
1 parent
241a955
commit deed328
Showing
39 changed files
with
505 additions
and
225 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
docs/root/intro/arch_overview/upstream/load_balancing/excluded.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
.. _arch_overview_load_balancing_excluded: | ||
|
||
Excluded endpoints | ||
------------------ | ||
|
||
Certain conditions may cause Envoy to *exclude* endpoints from load balancing. Excluding a host | ||
means that for any load balancing calculations that adjust weights based on the ratio of eligible | ||
hosts and total hosts (priority spillover, locality weighting and panic mode) Envoy will exclude | ||
these hosts in the denominator. | ||
|
||
For example, with hosts in two priorities P0 and P1, where P0 looks like {healthy, unhealthy | ||
(excluded), unhealthy (excluded)} and where P1 looks like {healthy, healthy} all traffic will still | ||
hit P0, as 1 / (3 - 2) = 1. | ||
|
||
Excluded hosts allow scaling up or down the number of hosts for a given cluster without entering | ||
panic mode or triggering priority spillover. | ||
|
||
If panic mode is triggered, excluded hosts are still eligible for traffic; they simply do not | ||
contribute to the calculation when deciding whether panic mode is enabled or not. | ||
|
||
Currently, the following two conditions can lead to a host being excluded when using active | ||
health checking: | ||
|
||
* Using the :ref:`ignore_new_hosts_until_first_hc | ||
<envoy_api_field_Cluster.CommonLbConfig.ignore_new_hosts_until_first_hc>` cluster option. | ||
* Receiving the :ref:`x-envoy-immediate-health-check-fail | ||
<config_http_filters_router_x-envoy-immediate-health-check-fail>` header in a normal routed | ||
response or in response to an :ref:`HTTP active health check | ||
<arch_overview_health_checking_fast_failure>`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,7 @@ Load Balancing | |
locality_weight | ||
overprovisioning | ||
panic_threshold | ||
excluded | ||
original_dst | ||
zone_aware | ||
subsets |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
22 changes: 3 additions & 19 deletions
22
generated_api_shadow/envoy/config/cluster/v3/cluster.proto
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.