Skip to main content
kube-router is a turnkey CNI (Container Network Interface) solution for Kubernetes networking that provides pod networking, network policy enforcement, and service proxy using Linux kernel technologies (BGP, IPVS, IPTables, and eBPF).

Install kube-router CNI

When generating the machine config for a node, set the CNI to none and disable the default kube-proxy since kube-router replaces it.
For Talos v1.14 and later, delete the default CNI and disable kube-proxy:
Generate the machine config with the patch applied to the control plane:
If you want to use kube-router alongside kube-proxy instead of replacing it, omit proxy.disabled: true from the patch and set kubeRouter.run_router=--run-service-proxy=false in the kube-router DaemonSet arguments.

Installation

Choose the tab that matches how you manage your cluster.
kube-router can replace kube-proxy entirely, or run alongside it. Choose the tab that matches how you want to run it.
  1. Create a patch file that disables the default CNI. This keeps kube-proxy running, and uses kube-router for pod networking and network policies only:
  2. Replace <CLUSTER_NAME> with a name for your cluster and <CLUSTER_ENDPOINT> with your control plane endpoint, then generate the machine config:
After applying the machine config and bootstrapping, Talos will appear to hang at phase 18/19 with the message retrying error: node not ready. This is expected — nodes are only marked ready once a CNI is running. You have about 10 minutes to apply kube-router before the node reboots to retry.
  1. During this window, deploy kube-router:
    After kube-router is installed, the boot process continues and completes.

Cleanup of kube-proxy

If you deployed kube-router as a replacement for kube-proxy and kube-proxy was previously running, clean up the iptables rules left behind:
Refer to the kube-router user guide for more configuration options.