-
Notifications
You must be signed in to change notification settings - Fork 361
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
feat(infrastructure/proxy): add readiness probes in envoy proxy deployments #1568
Conversation
This commit adds readiness probes in envoy proxy deployments to prevent pods in not ready state to receive traffic. This allows envoy proxy configurations and in-place upgrades without traffic drops using the configured rollout strategy. Signed-off-by: Pratyush Singhal <psinghal20@gmail.com>
…ootstrap config Signed-off-by: Pratyush Singhal <psinghal20@gmail.com>
Signed-off-by: Pratyush Singhal <psinghal20@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks !
Codecov Report
@@ Coverage Diff @@
## main #1568 +/- ##
==========================================
+ Coverage 61.73% 61.84% +0.10%
==========================================
Files 81 81
Lines 12182 12190 +8
==========================================
+ Hits 7521 7539 +18
+ Misses 4191 4182 -9
+ Partials 470 469 -1
|
address: {{ .ReadyServer.Address }} | ||
port_value: {{ .ReadyServer.Port }} | ||
protocol: TCP | ||
filter_chains: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lets also add a text based access log that outputs to stdout https://github.com/envoyproxy/gateway/blob/75e7ada61fe1db9455481f2321309e099f3d8977/internal/xds/translator/listener.go#LL57C19-L57C19
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as well as the per connection setting
PerConnectionBufferLimitBytes: wrapperspb.UInt32(tcpListenerPerConnectionBufferLimitBytes), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that will be too noise
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah understand where you are coming from, its fine to leave it as is. My reasoning for adding it was from a correctness/visibility perspective where user wants to exactly know what requests are being made to the proxy to better correlate cpu/system consumption etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@psinghal20 can you incorporate the PerConnectionBufferLimitBytes
setting into the config, to reduce buffer space, tia !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small comment, other than that it looks good to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What type of PR is this?
This PR adds readiness probes in envoy proxy deployments to prevent pods in a not-ready state to receive traffic.
What this PR does / why we need it:
This allows envoy proxy configurations and in-place upgrades without traffic drops using the configured rollout strategy.
Which issue(s) this PR fixes:
Fixes #1567
To access the admin APIs through the readiness probe, I had to change the listener admin address to
0.0.0.0
from127.0.0.1
to allow the envoy to listen on other network interfaces as well. Let me know if this needs to be changed.