-
Notifications
You must be signed in to change notification settings - Fork 9.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
*: add support for socket options #12702
Conversation
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
nice find! |
Codecov Report
@@ Coverage Diff @@
## master #12702 +/- ##
==========================================
+ Coverage 50.61% 59.50% +8.88%
==========================================
Files 420 424 +4
Lines 33122 32541 -581
==========================================
+ Hits 16765 19362 +2597
+ Misses 14389 11348 -3041
+ Partials 1968 1831 -137
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
@hexfusion Any updates? Would like to get this in release 3.5 |
cc @jdef |
@gyuho I will have an update early next week latest |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
@gyuho PTAL added fixup commit will rebase once the review is done. |
@hexfusion Thanks! Can we also update our 3.5 CHANGELOG? |
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
CHANGELOG: add socket option flags #12702
This is amazing, thanks for doing this! |
Hi, the integration test cluster seems to not have access to this option, was that deliberate or is it something that we should consider adding? @serathius @ahrtr @gyuho |
Please try to add common config items so that they can be reused by both integration and e2e test cases. |
Sounds good, I'll work on this, since when I tried working on tests for my other patch (#14355), and I was restarting the cluster, I ran into this issue, would be useful to have. Thanks, will take this up. |
This PR adds support for setting socket options
SO_REUSEADDR
andSO_REUSEPORT
to etcd listeners viaListenConfig
. These options give the flexibility to cluster admins who wish to more explicit control of these features. What we have found is during etcd process restart there can be a considerable time waiting for the port to release as it is held open byTIME_WAIT
which on many systems is 60s.So we can wait for many seconds even after etcd process is long dead for client and peer ports to become available.
A similar approach has been taken with the addition of these options in the kube-apiserver[2]
[1] https://man7.org/linux/man-pages/man7/socket.7.html
[2] kubernetes/kubernetes#93861