En este documento se describe cómo funcionan las pasarelas multiclúster en Google Kubernetes Engine (GKE). Las pasarelas de varios clústeres son una solución de red eficaz que te permite gestionar el tráfico de los servicios desplegados en varios clústeres de GKE.
Este documento está dirigido a arquitectos de nube y especialistas en redes que diseñan y definen la arquitectura de la red de su organización. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles de usuario y tareas comunes de GKE Enterprise. Google Cloud
Información general
Multi-cluster Gateway se configura mediante los recursos de la API de Kubernetes Gateway. El controlador de GKE Gateway monitoriza estos recursos (Gateway y HTTPRoute) y aprovisiona y mantiene automáticamente la infraestructura de balanceo de carga global necesaria.Google Cloud Esta infraestructura proporciona una gestión avanzada del tráfico para los servicios implementados en varios clústeres de GKE de una flota. Multi-cluster Gateways usa la infraestructura de balanceo de carga global de Google Cloudpara proporcionar un único punto de entrada unificado para tus aplicaciones. Este enfoque tiene las siguientes ventajas:
- Simplifica la gestión
- Mejora la fiabilidad
- Habilita funciones avanzadas de gestión del tráfico
Funciones de gestión del tráfico
Las pasarelas de varios clústeres te ofrecen funciones avanzadas para gestionar el tráfico en varios clústeres. Puedes implementar estrategias de enrutamiento sofisticadas, como lanzamientos por fases y estrategias azul-verde, para desplegar cambios de forma segura. Para tener un control más preciso, puedes usar la coincidencia basada en encabezados para probar los cambios con un pequeño porcentaje del tráfico o dividir el tráfico por peso para cambiar gradualmente las solicitudes entre diferentes back-ends de clústeres.
Las pasarelas multiclúster también te permiten replicar el tráfico, lo que envía una copia de las solicitudes de los usuarios activos a un nuevo servicio para probar el rendimiento sin que los usuarios se vean afectados. Para garantizar la fiabilidad y evitar sobrecargas, las pasarelas de varios clústeres admiten la conmutación por error basada en el estado y el balanceo de carga basado en la capacidad, que distribuye las solicitudes en función de la capacidad definida de tus servicios.
Cómo funciona la pasarela de varios clústeres
Todos los clústeres de GKE que participen en una configuración de Gateway multiclúster deben registrarse en una flota. Una flota proporciona una agrupación lógica de clústeres, lo que permite gestionar y comunicar los clústeres de forma coherente. Un clúster de GKE de la flota se designa como clúster de configuración.
El clúster de configuración actúa como punto de control centralizado para la configuración de la puerta de enlace de varios clústeres. Despliega todos los recursos de la API Gateway de varios clústeres, como Gateway y HTTPRoute, solo en este clúster designado.
El controlador de GKE Gateway monitoriza el servidor de la API de Kubernetes del clúster de configuración para detectar estos recursos.
Para elegir un clúster de configuración, considera un clúster de GKE de alta disponibilidad, como un clúster regional. De esta forma, el controlador puede conciliar continuamente las actualizaciones de los recursos de la API Gateway.
El controlador de la puerta de enlace multiclúster usa servicios multiclúster (MCS) para descubrir y acceder a servicios de Kubernetes en varios clústeres de GKE de una flota. MCS es una función de GKE que permite el descubrimiento de servicios y la conectividad entre servicios que se ejecutan en diferentes clústeres de GKE de una flota.
MCG usa MCS para descubrir qué servicios están disponibles en qué clústeres con el fin de enrutar el tráfico externo a los servicios. El controlador de MCG usa recursos de la API de MCS para agrupar pods en un único servicio que se puede direccionar y que abarca varios clústeres.
En función de las configuraciones que hayas definido en los recursos de la API Gateway, el controlador Gateway de GKE proporciona un balanceador de carga de aplicaciones externo o interno. Este balanceador de carga actúa como frontend de tu aplicación y distribuye el tráfico directamente a los pods en buen estado de tu flota, independientemente de su ubicación.
En los siguientes pasos generales se describe el proceso para implementar un Gateway multiclúster:
Define una pasarela: en una configuración de pasarela de varios clústeres, crea un recurso Gateway que define el punto de entrada del tráfico en el clúster de configuración. El recurso Gateway especifica un GatewayClass, que es una plantilla de un tipo concreto de balanceador de carga, como un balanceador de carga de aplicación externo global o un balanceador de carga de aplicación interno regional. En GKE, las siguientes GatewayClasses despliegan pasarelas de varios clústeres:
gke-l7-global-external-managed-mc: aprovisiona un balanceador de carga de aplicación externo global.gke-l7-regional-external-managed-mc: aprovisiona un balanceador de carga de aplicación externo regional.gke-l7-cross-regional-internal-managed-mc: aprovisiona un balanceador de carga de aplicación interno.gke-l7-rilb-mc: aprovisiona un balanceador de carga de aplicación interno.gke-l7-gxlb-mc: aprovisiona un balanceador de carga de aplicación clásico.
La puerta de enlace también define cómo escucha el balanceador de carga el tráfico entrante especificando qué listeners de red (puertos y protocolos) se deben exponer. Para obtener más información sobre las clases de Gateway compatibles con GKE, consulta Servicios multiclúster.
Asocia HTTPRoutes a la Gateway: los recursos HTTPRoute definen cómo se dirige el tráfico HTTP/S entrante a servicios backend específicos. Los HTTPRoutes se adjuntan a los recursos de Gateway y especifican reglas basadas en nombres de host, rutas, encabezados y más. HTTPRoute también admite funciones avanzadas de gestión del tráfico, como la división y la proyección del tráfico.
Crear balanceador de carga: cuando despliegas recursos Gateway y HTTPRoute, el controlador Gateway de GKE interpreta estos objetos de la API y, a su vez, configura dinámicamente la infraestructura de Google Cloud balanceo de carga necesaria. A continuación, el balanceador de carga dirige el tráfico a los pods correctos, independientemente del clúster en el que se encuentren. Este proceso proporciona una forma muy eficiente y escalable de enrutar el tráfico.
Flujo de tráfico
En el siguiente diagrama se muestra cómo funciona una puerta de enlace multiclúster como balanceador de carga centralizado para aplicaciones que se ejecutan en dos clústeres de GKE de diferentes regiones:
El comportamiento del balanceador de carga se configura en función de las reglas definidas en los recursos HTTPRoute. Cuando el tráfico de los usuarios llega a la dirección IP del balanceador de carga aprovisionado (definido por el recurso Gateway), el balanceador de carga, que es un proxy gestionado por Google, enruta el tráfico. Google Cloud Este proxy (un proxy de Google Front End o un proxy regional) dirige el tráfico al endpoint del servicio de backend adecuado dentro del clúster de GKE correcto, según los siguientes criterios:
- Comprobaciones del estado
- Reglas de división del tráfico
- Capacidad
El tráfico se dirige directamente al pod óptimo del clúster seleccionado.
Siguientes pasos
- Consulta cómo habilitar pasarelas de varios clústeres.
- Consulta una descripción general de cómo funcionan las pasarelas en GKE.