Networking Multiple Kind Kubernetes Clusters Together Using Native Routing
· 3 min read
Recently, I set out to create a multi-cluster kind environment where clusters could communicate over a flat network. The goal was simple: pods in one cluster should be able to directly talk to pods in another cluster without requiring tunneling or proxies.
At first glance, this seemed tricky — the pod IPs assigned inside kind clusters exist only within the containerized network of each cluster, and Docker isolates these networks by default. However, I eventually found a straightforward solution that uses native routing, and I wanted to share my journey and what worked.
The Challenge
By design, kind runs Kubernetes clusters inside Docker containers. This means:
- Pod IPs are only visible inside the Docker network created for each kind cluster.
- There’s no built-in way for a pod in one cluster to directly communicate with a pod in another cluster using its pod IP.
- Bridging these isolated networks requires either complex overlay solutions or manual routing.