feat: add graceful stop annotation#486
Conversation
|
Hi @Bowser1704. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Bowser1704 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
cb12aa3 to
e328b2c
Compare
Signed-off-by: Hongqi Yu <bowser1704@gmail.com>
e328b2c to
a9bb3e6
Compare
What type of PR is this?
/kind feature
What this PR does / why we need it:
Adds a new Service annotation
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-graceful-shutdown.When enabled for ENI backends, terminating EndpointSlice endpoints that are still serving are kept in CLB/NLB backend server groups with weight
0, allowing existing connections to drain before the backend is removed after pod termination completes.This PR also adds unit tests and E2E coverage for CLB and NLB graceful shutdown behavior.
Which issue(s) this PR fixes:
Fixes #485
Special notes for your reviewer:
This feature applies to EndpointSlice-based reconciliation and ENI backend mode.
graceful-shutdownrelies on backend weight updates to set terminating-but-serving backends to weight0. If users also enableignore-weight-update, the backend is kept in the server group butthe weight is not changed. In that case, users should enable
connection-drainto reduce connection interruption risk when the backend is finally removed.Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: