Cilium Cluster Mesh Architecture
A cilium cluster mesh architecture links multiple Kubernetes clusters into one shared network. It lets pods in different clusters talk to each other using eBPF rules. Platform teams often set up this mesh to share services across cloud regions. Still, broad admin roles during setup can expose every linked cluster to mistakes. One bad command from an admin with wide access can break routing everywhere. How cilium cluster mesh architecture works Each Kubernetes cluster in the mesh runs its own
Mesh Security Architecture + Cilium Network Policies: the complete guide
Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.
A cilium cluster mesh architecture links multiple Kubernetes clusters into one shared network. It lets pods in different clusters talk to each other using eBPF rules. Platform teams often set up this mesh to share services across cloud regions. Still, broad admin roles during setup can expose every linked cluster to mistakes. One bad command from an admin with wide access can break routing everywhere.
How cilium cluster mesh architecture works
Each Kubernetes cluster in the mesh runs its own Cilium agents on every node. It also runs a dedicated API server that stores local pod and service details. When you link two clusters, their agents read state from the remote API server. This setup shares endpoint lists, network identities, and service routes across the whole mesh.
You must give each cluster a unique name and numeric ID before linking them. Clusters also need non-overlapping pod IP ranges so packets route to the right place. Nodes in different clusters must have direct IP routing between them. Traffic can flow through native routing or through an encrypted overlay tunnel.
Cilium does not rely on IP addresses alone to enforce security rules. Instead, it assigns a security identity to each group of pods based on labels. The mesh syncs these identities across all linked clusters in real time. A network rule in cluster one can allow or block pods in cluster two.
Setting up global services and trust
All clusters in the mesh must trust the same root certificate authority. This shared trust lets agents talk to remote API servers over mutual TLS. If each cluster uses its own root key, you must merge the trust bundles. Without shared certificates, remote agents will reject the sync requests right away.
Once the mesh is up, teams can mark standard Kubernetes services as global. A global service pools back-end pods from every cluster that hosts that app. Local pods can send traffic to local back ends first to keep latency low. If local pods fail, the mesh routes traffic to healthy pods in another cluster.
Mesh Security Architecture + Cilium Network Policies: architecture patterns and best practices
Continue reading? Get the full guide.
Free. No spam. Unsubscribe anytime.
What native setup solves and what it misses
Cilium cluster mesh handles pod-to-pod traffic, service failover, and label-based network rules well. It gives apps a flat network across clouds and regions with low overhead. It also encrypts data in transit between nodes when you turn on WireGuard or IPsec.
Still, the mesh only controls how workloads talk to each other on the network. It does not control what engineers or automated tools do inside the clusters. Teams still need admin roles to manage the mesh, check status, and fix issues. Native cluster roles decide who can log in, not what commands they run.
When an engineer logs into a linked cluster, broad permissions create real risk. A single bad command or query can delete global services or expose sensitive data. Standard network policies cannot inspect interactive sessions or rewrite sensitive fields like emails, phone numbers, card numbers, or national IDs in results.
Govern statements and responses across databases and APIs
Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev runs beside each supported service as an open-source proxy, a sidecar for your database or API.
First, hoop.dev guardrails block banned queries before they run. Then hoop.dev data masking rewrites matched sensitive values in responses in memory. The audit trail records every statement and verdict per resource. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.
Frequently asked questions
Do linked clusters need unique pod IP ranges?
Yes, every cluster in the mesh must use a distinct pod IP range. This rule prevents address clashes when pods send traffic across cluster borders.
How does service discovery work across the mesh?
Teams add an annotation to a standard Kubernetes service on each cluster. The mesh then merges the endpoints so any pod can reach the shared service.
What happens if the link between clusters drops?
Local traffic inside each cluster keeps flowing without any break. Remote endpoints stay cached for a short time until the sync link comes back.
Related guides
In this post