Evaluating
Global Load
Balancing
Options for Kubernetes in Practice
Nicolai Ort
Cloud Platform Engineer
DATEV
Tobias Schneck
Principal Architect
Kubermatic
@toschneck
@nicolaiort
Load
balancing
The Basics
Load balancing
Load balancing 101
Load balancing
…but Kubernetes
Load balancing
…but Kubernetes
…and external LB
Load balancing 101
● Distribute incoming network traffic across multiple backend
● Preventing Overload of backends
● Health checks to avoid faulty backends
● Precondition for:
○ Delivering high availability services
○ Zero downtime Deployments
● Security Layer
○ Protect Backends
○ Surrounded with Firewalls and WAFs
BUT …. Also single point of failure!
Load balancing 101
North-South
East-West
Client
Internet
Data Center
Compound K8s
Clusters
Switches
Firewall - Central
LB
Isnʼt this enough?
When do you need it?
Cluster Mesh
Case 1
● Enable pod-to-pod connectivity across all clusters
● Define global services to load-balance between clusters
● ❗Needs direct Node-to-Node Layer 4 connectivity + non overlapping Node IPs
Cluster Mesh Architecture
Cluster Mesh Architecture in Detail
● Cluster Mesh API Server
○ Is read-only and is used by the remote nodes to get the local cluster status
○ Can be exposed via NodePort or LoadBalancer service
Environment
github.com/nicolaiort/rejekts2025-glsb
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Environment
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Environment
Cluster Mesh Bootstrapping
Cluster Mesh Bootstrapping
Routing Strategies
Use Case: DC or Cluster fail out
Use Case: DC or Cluster fail out
Use Case: DC or Cluster fail out
Use Case: DC or Cluster fail out
Only works as long as Cluster 2 is functional!
Global Service
Load Balancing
Move across the world
Global load balancing
Just buy it
But how?
DNS- A quick reminder
DNS - A large system
But how does DNS help us?
K8GB
The kubernetes-native GSLB
K8GB: How it helps us
K8GB: On our clusters
K8GB: With the upstream
K8GB: Another DNS-Layer
K8GB: They talk to each other
K8GB: Add the user
Lessons
learned
How did they compare?
Comparison ⚔
Cluster Mesh
✅ Fine-grained control traffic management
✅ mTLS option for inner cluster communication
⏺ Pod-to-Pod communication
⏺ Observability of data flows
❌ Direct node-2-node communication required
❌ Full cluster outage not supported
❌ Troubleshooting of Sidecars / Mesh complexity
❌ Difficult to automate Setup (TLS handshake)
✅ DNS: simple bulletproofed core web technology
✅ On-failure: manual management possible
✅ No direct node-2-node network opening
✅ Global scalability & geo aware routing
✅ Fully automated cluster failover
⏺ Hosting own sub DNS zone
❌ DNS TTL caching
❌ No cluster-2-cluster traffic management
Global Load Balancer
Clustermesh and dns can be combined
Next steps
Schedule across clusters
Karmada
Liqo
Admirality
Armada
Kubeadmiral
Thanks
100%
Slides and code will be available after the talk.
Links,sources and other stuff
- Demo code and images: https://github.com/nicolaiort/rejekts2025-glsb
- Slides styles, credits to Mario Fahlandt
- Demoed tools
- K8GB: https://www.k8gb.io/
- Cilium: https://cilium.io/
- Illustration tools:
- Drawings: https://excalidraw.com/
- Diagramms: https://mermaid.org
Links,sources and other stuff
- Multi-Cluster scheduling
- https://karmada.io/
- https://armadaproject.io/
- https://kubeadmiral.io/
- https://admiralty.io/
- https://liqo.io/
-

Evaluating Global Load Balancing Options for Kubernetes in Practice (Kubermatic + DATEV)