Enable graceful termination for UDP flows when using kube-proxy in IPVS mode #71515
What type of PR is this?
What this PR does / why we need it:
Of course for this to work properly the service needs to continue to serve queries until the connections expire (this works fine with the lameduck option of coredns).
Which issue(s) this PR fixes *
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
Help distinguish UDP and TCP RS (useful for DNS which uses both)
The current logic is to delete a RS if the number of active connections is 0. This makes sense for TCP but for UDP the number of active connections is always 0. This is an issue for DNS queries because the RS will be deleted but the IPVS connection will remain until it expires (5mn by default) and if there are a lot of DNS queries, the port will be reused and queries blackholed. Of course for this to work properly the service needs to continue to serve queries until the connections expire (this works fine with the lameduck option of coredns).
Hi @lbernail. 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
Once the patch is verified, the new status will be reflected by the
I understand the commands that are listed here.
[APPROVALNOTIFIER] This PR is APPROVED
The full list of commands accepted by this bot can be found here.
The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing
Sounds like a good plan. We need to fix the UDP graceful termination first as there are some outstanding issues.
@lbernail @m1093782566 this fix looks rather important, but we need to assess the criticality of this fix and how stable it is to merge for 1.13.0 (release is on Monday). Let us know about the details:
I think this can go in, and be reverted if it introduces any CI problems due to lack of time.