Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt

Use this file to discover all available pages before exploring further.

kube-router is a turnkey solution for Kubernetes networking that provides pod networking, network policy enforcement, and service proxy using Linux kernel technologies (BGP, IPVS, IPTables, and eBPF).

Machine configuration preparation

When generating the machine config for a node, set the CNI to none and disable the default kube-proxy since kube-router replaces it.
cat <<EOF > patch.yaml
cluster:
  network:
    cni:
      name: none
  proxy:
    disabled: true
EOF
talosctl gen config \
    my-cluster https://mycluster.local:6443 \
    --config-patch @patch.yaml
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

If you are using Omni, you can deploy kube-router using the manifest sync feature in a cluster template.Step 1. Download the kube-router manifest:
curl -Lo kube-router.yaml https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter-all-features.yaml
Step 2. Reference the manifest in your Omni cluster template using the file field:Step 3. Apply the cluster template:
omnictl cluster template sync --file cluster-template.yaml
Omni will wait until the Kubernetes API is available and the cluster is healthy before applying the kube-router manifests. See Sync Kubernetes Manifests for more details on manifest sync modes and status monitoring.

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:
kubectl -n kube-system delete ds kube-proxy
kubectl -n kube-system delete cm kube-proxy
Refer to the kube-router user guide for more configuration options.