-
Notifications
You must be signed in to change notification settings - Fork 549
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
fix: bind HostDNS to 169.254.x link-local address #9200
Conversation
Idea comes from @utkuozdemir |
This comment was marked as resolved.
This comment was marked as resolved.
|
||
// HostDNSAddress is the address of the host DNS server. | ||
// | ||
// Note: 116 = 't' and 108 = 'l' in ASCII. |
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.
😎
d25bee3
to
19bf1fd
Compare
This is an attempt to fix many issues related with trying to use Service IP for host DNS. Fixes siderolabs#9196 Signed-off-by: Andrey Smirnov <[email protected]>
19bf1fd
to
ee4290f
Compare
/m |
Does this work with Cilium? |
you can tell us! previous approach worked with Cilium in default config, failed with non-default settings on Cilium side |
@smira bpf:
masquerade: true |
I even tried to disable masquerading for link-local addresses using following configuration: bpf:
masquerade: true
ipMasqAgent:
enabled: true
config:
masqLinkLocal: false
But it didn't help. Any ideas? |
You should ask Cilium guys, it works with Cilium with/without kube-proxy, but there are too many Cilium configuration options. |
After upgrading my Cilium v1.7.x cluster to v1.8.1, the default DNS configuration is completely broken, presumably due to this issue. It would be helpful to add a warning to the Talos docs for users running Cilium. |
This configuration works with Cilium using defaults (we have it tested), but it might not work with some non-default Cilium configuration, so it's better to find the issue. |
@smira can you add the "defaults" you are referring to while testing this deployment of Cilium? Per your docs I have replicated your documented defaults on my Talos 1.8.2 cluster with Cilium 1.16.3, and I get i/o timeouts from the CoreDNS pods. So something was clearly broken when making this change. Specifically These are the helm values the pod was deployed with, they do not work.
|
@Nomsplease have you restarted the |
Multiple times, even uninstalled my CoreDNS I had seperate and moved back to the Talos resources. Reapplied everything with k8s upgrade command. This clearly broke with 1.8.X, and I have been pulling my hair out trying to fix it. |
@Nomsplease Are you sure you are not using |
I saw your previous issue, hence what led me here. My helm values are above. My previous values included bpf.masquerade, but I was trying to rule out variables hence strip everything to the "defaults". Maybe ill just turn off the DNS to Host since clearly something wasnt tested, or was missed. Cilium guys dont seem to want to look into it. |
You can see yourself in the CI: https://github.com/siderolabs/talos/actions/runs/11566835784/job/32196143544 |
I've just stumbled across this issue. The configuration below works until I switch to bpf.hostLegacyRouting=false. I'm restoring Talos from backups taken before the CNI is installed to test all Cilium configuration options...it's the only way I can be sure that the configuration is applied correctly without side-effects from a previous configuration. I'm going to test the cilium ipMasqAgent settings now that @maxpain mentioned above, and will report back with findings.
|
I think this is related to this cilium issue: cilium/cilium#29413 The recommendation is to move the host's DNS from the loopback device to the dummy device when using bpf routing. I've had a quick look and didn't see any Talos configuration options to achieve this, so I guess if I want bpf routing I need to disable Talos' |
This is an attempt to fix many issues related with trying to use Service IP for host DNS.
Fixes #9196