Ambassador post by Gerardo Lopez
(The Spanish version of this post is below.)
As a CNCF Ambassador and proud Kubestronaut, I am always eager to explore innovative tools that enhance the resilience and scalability of cloud-native architectures. One such tool that has stood out in the ecosystem is k8gb, a global load balancer for Kubernetes clusters. In this blog post, we will delve into the theoretical foundations of k8gb and demonstrate its practical application in achieving multi-cluster fault tolerance.
What is k8gb?
k8gb, short for Kubernetes Global Balancer, is a solution designed to provide global load balancing for applications running across multiple Kubernetes clusters. Built on core principles of fault tolerance and high availability, k8gb:
- Ensures traffic is directed to healthy clusters based on real-time health checks.
- Integrates with external DNS providers to manage failover scenarios.
- Supports a variety of deployment strategies, including active-active and active-passive.
With k8gb, organizations can confidently run applications across geographically distributed clusters, ensuring optimal performance and minimal downtime.
Why Multi-Cluster?
In a cloud-native world, multi-cluster deployments are becoming increasingly essential for:
- Fault Tolerance: Distributing workloads across clusters ensures that the failure of one cluster does not lead to service disruption.
- Low Latency: Clusters closer to users can serve requests faster, enhancing the user experience.
- Compliance and Governance: Multi-region setups allow organizations to meet data sovereignty requirements.
However, managing traffic between clusters can be challenging. This is where k8gb’s capabilities shine.
How k8gb Works
At its core, k8gb leverages DNS-based load balancing. Here’s a simplified overview of how it operates:
- Health Checks: k8gb continuously monitors the health of services across clusters.
- DNS Updates: k8gb serves dynamically crafted DNS responses using embedded coredns. So DNS records are updated locally, upstream DNS is configured only for Zone Delegation (using external-dns).

First, K8GB will use external-dns to configure zone delegation on your upstream DNS provider, so that it can control the subzone, say “cloud.example.com“.
Then, K8GB will read your ingress configuration, check the health of your application, exchange this information with the other cluster and update the DNS entries in coreDNS according to the strategy of your choice.
Later, when a user queries for the record app.cloud.example.com, the domain name will be resolved by a coreDNS instance controlled by K8GB and the request will be routed to a healthy cluster.
- Failover Management: In case of a cluster failure, k8gb ensures seamless traffic redirection to other healthy clusters.
This approach not only guarantees high availability but also simplifies traffic management in complex multi-cluster environments.
Practical Example: Multi-Cluster Deployment with k8gb
Let’s consider a practical example where k8gb is used to deploy a highly available web application across two Kubernetes clusters: one in the US and another in Europe.
Setup Overview:
- Clusters:
- us-cluster: Located in a US region.
- eu-cluster: Located in a European region.
- Application: A simple NGINX-based web application.
- DNS Provider: External DNS provider (e.g., AWS Route53 or Google Cloud DNS).
- k8gb: Installed in both clusters to manage global load balancing.
Deployment Steps:
- Install k8gb:
- Deploy k8gb to both clusters.
- Configure k8gb to integrate with the DNS provider.
- Define a Global Traffic Policy:
- Use an active-active strategy to direct traffic to the nearest cluster.
- Configure a fallback to the other cluster in case of failure.
- Deploy the Application:
- Deploy the same application in both clusters.
- Ensure each application exposes the same hostname (e.g., app.example.com).
- Configure DNS Records:
- Point the application’s domain to k8gb’s DNS-managed entry.
- Simulate Failover:
- Shut down the us-cluster to observe traffic automatically redirected to the eu-cluster.
Benefits of Using k8gb
- Seamless Failover: Users experience uninterrupted service even during cluster outages.
- Improved Performance: Traffic is directed to the nearest cluster, reducing latency.
- Simplified Multi-Cluster Management: k8gb abstracts the complexity of global load balancing.
Final Thoughts
k8gb is a powerful tool that empowers organizations to embrace multi-cluster deployments with confidence. By automating traffic management and failover processes, k8gb ensures high availability and fault tolerance, essential qualities in today’s cloud-native applications.
If you’re looking to explore multi-cluster strategies or enhance your application’s resilience, k8gb is a great place to start. Feel free to share your experiences or questions in the comments—let’s learn and grow together as a community!
To see k8gb in action, check out the live demo I presented on the ChatLoopBackOff Show by CNCF. In this session, I walk through the main features of k8gb and demonstrate how to implement them effectively. Watch the demo here: ChatLoopBackOff – Episode 42 (K8gb)
If you’re passionate about software development and cloud-native technologies, let’s connect! 🌟 I regularly share insights, tips, and updates on the latest trends in the tech world. From Kubernetes to multi-cluster setups and beyond, you’ll find content designed to inspire and educate.
Follow me on my social media channels to stay updated and be part of the conversation. Together, we can explore the cutting edge of innovation! 🚀
Exploración de la tolerancia a errores de varios clústeres con k8gb
Como Embajador de CNCF y orgulloso Kubestronauta, siempre estoy ansioso por explorar herramientas innovadoras que mejoren la resiliencia y escalabilidad de las arquitecturas cloud-native. Una de esas herramientas que destaca en el ecosistema es k8gb, un balanceador de carga global para clústeres de Kubernetes. En este blog, profundizaremos en los fundamentos teóricos de k8gb y demostraremos su aplicación práctica para lograr tolerancia a fallos en múltiples clústeres.
¿Qué es k8gb?
k8gb, abreviatura de Kubernetes Global Balancer, es una solución diseñada para proporcionar balanceo de carga global para aplicaciones que se ejecutan en múltiples clústeres de Kubernetes. Construido sobre principios clave de tolerancia a fallos y alta disponibilidad, k8gb:
- Asegura que el tráfico sea dirigido a clústeres saludables basándose en verificaciones de estado en tiempo real.
- Se integra con proveedores de DNS externos para gestionar escenarios de conmutación por error (failover).
- Admite una variedad de estrategias de implementación, incluidas las configuraciones activo-activo y activo-pasivo.
Con k8gb, las organizaciones pueden ejecutar aplicaciones en clústeres distribuidos geográficamente con confianza, garantizando un rendimiento óptimo y un tiempo de inactividad mínimo.
¿Por qué Multi-Cluster?
En un mundo cloud-native, los despliegues multi-clúster están siendo cada vez más esenciales por varias razones:
- Tolerancia a fallos: Distribuir las cargas de trabajo entre clústeres asegura que la falla de un clúster no interrumpa el servicio.
- Baja latencia: Los clústeres más cercanos a los usuarios pueden atender solicitudes más rápido, mejorando la experiencia del usuario.
- Cumplimiento y gobernanza: Configuraciones multi-región permiten a las organizaciones cumplir con requisitos de soberanía de datos.
Sin embargo, gestionar el tráfico entre clústeres puede ser un desafío. Aquí es donde brillan las capacidades de k8gb.

Cómo funciona k8gb
En esencia, k8gb utiliza un balanceo de carga basado en DNS. A continuación, se presenta una descripción simplificada de cómo opera:
- Verificaciones de salud (Health Checks):
- k8gb monitorea continuamente el estado de los servicios en todos los clústeres. Esto asegura que el tráfico solo sea dirigido a clústeres saludables.
- Actualizaciones de DNS:
- k8gb genera respuestas DNS dinámicas utilizando coredns integrado. Los registros DNS se actualizan localmente, mientras que el DNS ascendente (upstream) se configura únicamente para la delegación de zona (Zone Delegation), mediante herramientas como external-dns.
Este enfoque permite un balanceo de carga eficiente y adaptable, garantizando que las solicitudes se dirijan de manera inteligente a los recursos disponibles en los diferentes clústeres.

Primero, k8gb utiliza external-dns para configurar la delegación de zona en el proveedor de DNS ascendente (por ejemplo, AWS Route53 o Google Cloud DNS). Esto permite a k8gb controlar una subzona, como “cloud.example.com”.
k8gb lee la configuración de ingress, verifica el estado de salud de tu aplicación, intercambia esta información con otros clústeres y actualiza los registros DNS en coreDNS según la estrategia definida (activo-activo o activo-pasivo).
Cuando un usuario consulta por un registro, como app.cloud.example.com, el nombre de dominio será resuelto por una instancia de coreDNS controlada por k8gb. La solicitud se enruta automáticamente a un clúster saludable.
3- Gestión de conmutación por error (Failover): En caso de falla de un clúster, k8gb redirige sin interrupciones el tráfico hacia otros clústeres saludables.
Este enfoque garantiza alta disponibilidad y simplifica la gestión del tráfico en entornos multi-clúster complejos.
Ejemplo práctico: Despliegue multi-clúster con k8gb
Escenario
Una aplicación web altamente disponible se despliega en dos clústeres Kubernetes:
- us-cluster: Ubicado en una región de EE. UU.
- eu-cluster: Ubicado en una región de Europa.
- Aplicación: Basada en NGINX.
- Proveedor de DNS: Por ejemplo, AWS Route53 o Google Cloud DNS.
- k8gb: Instalado en ambos clústeres para gestionar el balanceo de carga global.
Pasos de implementación
- Instalar k8gb:
- Desplegar k8gb en ambos clústeres.
- Configurar k8gb para integrarlo con el proveedor de DNS.
- Definir una política de tráfico global:
- Usar una estrategia activo-activo para dirigir el tráfico al clúster más cercano.
- Configurar un fallback para redirigir al otro clúster en caso de falla.
- Desplegar la aplicación:
- Implementar la misma aplicación en ambos clústeres.
- Asegurarse de que ambas instancias expongan el mismo nombre de host (por ejemplo, app.example.com).
- Configurar registros DNS:
- Apuntar el dominio de la aplicación a la entrada gestionada por k8gb en DNS.
- Simular conmutación por error:
- Apagar el clúster de EE. UU. para observar cómo el tráfico se redirige automáticamente al clúster de Europa.
Beneficios de usar k8gb
- Conmutación por error sin interrupciones: Los usuarios experimentan un servicio ininterrumpido incluso durante caídas de clústeres.
- Mejor rendimiento: El tráfico se dirige al clúster más cercano, reduciendo la latencia.
- Gestión simplificada: k8gb abstrae la complejidad del balanceo de carga global en entornos multi-clúster.
Reflexiones finales
k8gb es una herramienta poderosa que permite a las organizaciones adoptar despliegues multi-clúster con confianza. Automatiza la gestión del tráfico y los procesos de conmutación por error, asegurando alta disponibilidad y tolerancia a fallos, cualidades esenciales para las aplicaciones cloud-native actuales.
Si deseas explorar estrategias multi-clúster o mejorar la resiliencia de tus aplicaciones, k8gb es un excelente punto de partida. ¡Comparte tus experiencias o preguntas en los comentarios y aprendamos juntos como comunidad!
Para ver k8gb en acción, revisa la demo en vivo que presenté en el ChatLoopBackOff Show de CNCF. En este episodio, explico las principales características de k8gb y cómo implementarlas de manera efectiva. Mira la demo aquí: ChatLoopBackOff – Episode 42 (K8gb)
Si te apasiona el desarrollo de software y las tecnologías cloud-native, ¡conectemos! 🌟 Comparto regularmente ideas, consejos y actualizaciones sobre las últimas tendencias en el mundo tecnológico. Desde Kubernetes hasta configuraciones multi-clúster y más allá, encontrarás contenido diseñado para inspirar y educar.
Sígueme en mis redes sociales para mantenerte al tanto y ser parte de la conversación. ¡Exploraremos juntos la innovación más avanzada! 🚀