kube-proxy Talos Machine Configuration Not Being Passed To kube-proxy Daemon Set & Pods #11112
-
Software components:
I am trying to configure a 4-node Talos Linux / Kubernetes cluster to allow Kubernetes NodePort services to be accessible from each node's IP network interface for public traffic (10.0.1.128/25 subnet). NodePort services are accessible from each node's IP network interface for private traffic (10.0.1.16/28 subnet). However, NodePort services are not accessible from the public network interfaces. The solution from NodePort Service Only Accessible via one Interface #9577 does not seem to work when using either "0.0.0.0/0" or "10.0.1.128/25" for the parameter cluster.proxy.extraArgs.nodeport-addresses. The Talos machine configuration parameter cluster.proxy.extraArgs.nodeport-addresses is not being passed to the kube-proxy pods. I am assuming that it is supposed to work that way. Below are the running configurations:
Any suggestions? Talos Machine ConfigurationIn the Talos machine configuration for the controlplane node (node-1 with IPv4 address 10.0.1.18/28), the cluster.proxy.extraArgs.nodeport-addresses parameter is set to 10.0.1.128/25:
Talos Controlplane ManifestThe kube-proxy configuration from the Talos machine configuration is passed to the Talos Controlplane manifest:
Kubernetes kube-proxy Daemon SetHowever, the kube-proxy daemon set does NOT have the parameter "--nodeport-addresses":
Kubernetes kube-proxy PodsSubsequently, the kube-proxy pods do not have the "--nodeport-addresses" parameter:
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
This might be not so good UX, but it works as designed here. Talos machines never automatically modify or delete Kubernetes manifests (as it's not safe to do so given that there are multiple control plane machines which might disagree on the expected state). These bootstrap manifests are automatically applied when it results in Kubernetes resource being created, so if you made your changes before cluster is bootstrapped, they would appear as expected. In the current state, you can do a no-op Kubernetes upgrade via |
Beta Was this translation helpful? Give feedback.
This might be not so good UX, but it works as designed here.
Talos machines never automatically modify or delete Kubernetes manifests (as it's not safe to do so given that there are multiple control plane machines which might disagree on the expected state).
These bootstrap manifests are automatically applied when it results in Kubernetes resource being created, so if you made your changes before cluster is bootstrapped, they would appear as expected.
In the current state, you can do a no-op Kubernetes upgrade via
talosctl upgrade-k8s --to=1.32.3
to get these manifests synced.