-
Notifications
You must be signed in to change notification settings - Fork 527
enable/disable node-local-dns without rolling nodes #12422
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
enable/disable node-local-dns without rolling nodes #12422
Conversation
Skipping CI for Draft Pull Request. |
Can you also adapt the validation at gardener/pkg/apis/core/validation/shoot.go Line 709 in ffda36a
|
b2232dc
to
886f3be
Compare
/assign |
886f3be
to
a2b1d99
Compare
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.
Thanks a lot for the operational improvement that reduces the amount of node rollouts.
Please also adapt gardener/docs/usage/shoot-operations/shoot_updates.md Lines 164 to 172 in 5a32091
gardener/docs/usage/shoot-operations/shoot_updates.md Lines 99 to 115 in 5a32091
|
/assign |
a2b1d99
to
a313ba1
Compare
32744d9
to
277bbd1
Compare
96194bd
to
3428e70
Compare
Apparently, |
/lgtm |
LGTM label has been added. Git tree hash: 46f9fcb85cd3d7f2dbc9d0879161488a92d37d74
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ScheererJ 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 |
Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected.
Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected.
Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected. ```other operator Cilium extension now works with worker pool specific node-local-dns daemonsets. ```
Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected. ```other operator Cilium extension now works with worker pool specific node-local-dns daemonsets. ```
Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected. ```other operator Cilium extension now works with worker pool specific node-local-dns daemonsets. ```
* Handle old and new node-local-dns daemonsets in cilium webhook. Before gardener/gardener#12422, node-local-dns used a single daemonset for all nodes called node-local-dns. After that change, each worker pool gets a separate daemonset with the name node-local-dns-<worker-pool-name>. The webhook mutating the daemonset needs to handle both cases gracefully. Otherwise, node-local-dns pods may not work as expected. * Run `make generate`
* make node-local-dns configurable per worker group * run node-local-dns cleanup script when disabling node-local-dns instead of rolling the nodes * update node-local-dns e2e tests * address feedback * add cleanup label to nodes after disabling node local dns and address feedback * roll nodes when kube-proxy runs in ipvs mode and node-local-dns gets disabled * add check into IsKubeProxyIPVSMode function * address feedback * address feedback * address feedback * address feedback * incorporate further feedback * incorporate additional feedback * fix case when some workers are below 1.34 and some are equal or above * do check controlplane version check before loop * Address review feedback * Address review feedback * Fix operating system configuration test --------- Co-authored-by: Johannes Scheerer <johannes.scheerer@sap.com>
How to categorize this PR?
/area networking
/kind enhancement
What this PR does / why we need it:
Starting from Kubernetes version 1.34, enabling or disabling node-local-dns will no longer trigger node rolling (except kube-proxy is running in IPVS mode). Instead, a cleanup job will be executed. Additionally, node-local-dns is deployed per WorkerPool and node-local-dns is removed from OSC and wokerPoolHash calculation.
Many infrastructures struggle to handle a large number of TCP connections for DNS queries, often resulting in rate throttling leading to "connection timeout" issues during DNS resolution. To address this, UDP connections will be preferred when communicating with the upstream DNS server.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note: