-
Notifications
You must be signed in to change notification settings - Fork 575
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
CNI Portmap Plugin issue with Talos 1.7+, breaking pod-to-service communication #9883
Comments
I wonder if that's also the issue behind #9814 (or related). |
Do you have a reproducing configuration we could test with? |
Yes sure, the setup is quite simple :
You should see in the kube-router logs that it can't connect to the apiserver. |
If you have that as a series of shell commands and patches to Talos, that'd be perfect. E.g. I guess you disable Flannel. A way for us to reproduce would make fixing this way easier. |
Yes sure, we use talhelper to generate Talos configuration :
and the interesting patches
The others are about system-reserved resources. We also disable CoreDNS since we use a custom configuration For the kube-router install, the following would be enough : At this point, all should be working since there is not yet any workloads with hostPort enabled. Once deployed the bug happen, you can try to restart kube-router pods and see connection failure to the apiserver in the logs |
Build iptables with nftables support, and force to use nft version. See siderolabs/talos#9883 Signed-off-by: Andrey Smirnov <[email protected]>
Thanks for detailed configuration, I confirmed that siderolabs/pkgs#1106 fixes |
This doesn't fix #9814 though. |
These are used by CNI plugins. Fixes siderolabs#9883 See siderolabs/pkgs#1106 Signed-off-by: Andrey Smirnov <[email protected]>
Build iptables with nftables support, and force to use nft version. See siderolabs/talos#9883 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 9cf35be)
Build iptables with nftables support, and force to use nft version. See siderolabs/talos#9883 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 9cf35be)
These are used by CNI plugins. Fixes siderolabs#9883 See siderolabs/pkgs#1106 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 07220fe)
Build iptables with nftables support, and force to use nft version. See siderolabs/talos#9883 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 9cf35be)
These are used by CNI plugins. Fixes siderolabs#9883 See siderolabs/pkgs#1106 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 07220fe)
These are used by CNI plugins. Fixes siderolabs#9883 See siderolabs/pkgs#1106 Signed-off-by: Andrey Smirnov <[email protected]> (cherry picked from commit 07220fe)
Bug Report
Description
Since Talos 1.7.0, there's an inconsistency between the iptables mode used by kubelet (nft) and the one available for CNI plugins (legacy) when using the portmap plugin. This affects setups using CNIs that rely on the portmap plugin chaining.
A critical issue has been identified where pods using hostPort 443 prevent all cluster pods from accessing any Service IP on port 443, including the Kubernetes API server.
While we suspect this is related to the missing iptables-nft binary on the Talos host, we cannot confirm this is the root cause. However, the bug is consistently reproducible.
Environment
Workaround
We have found a temporary workaround for clusters running Talos 1.7+ with kube-router:
hostPort
configurations from DaemonSets and other workloadshostPort
tohostNetwork: true
The text was updated successfully, but these errors were encountered: