En este documento, se describe cómo operan las Gateways de varios clústeres en Google Kubernetes Engine (GKE). Las puertas de enlace de varios clústeres son una solución de redes potente que te permite administrar el tráfico de los servicios implementados en varios clústeres de GKE.
Este documento está dirigido a arquitectos de nube y especialistas en herramientas de redes que diseñan 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 de Google Cloud , consulta Roles de usuario y tareas comunes de GKE Enterprise.
Descripción general
La puerta de enlace de varios clústeres se configura con los recursos de la API de Gateway de Kubernetes. El controlador de GKE Gateway supervisa estos recursos (Gateway, HTTPRoute) y aprovisiona y mantiene automáticamente la infraestructura deGoogle Cloud balanceo de cargas global requerida. Esta infraestructura proporciona administración avanzada del tráfico para los servicios implementados en varios clústeres de GKE dentro de una flota. Las Gateways de varios clústeres usan la infraestructura de balanceo de cargas global de Google Cloudpara proporcionar un único punto de entrada unificado para tus aplicaciones. Este enfoque tiene los siguientes beneficios:
- Simplifica la administración
- Mejora la confiabilidad
- Habilita funciones avanzadas de administración del tráfico
Funciones de administración del tráfico
Las puertas de enlace de varios clústeres te brindan capacidades avanzadas para administrar el tráfico en varios clústeres. Puedes implementar estrategias de enrutamiento sofisticadas, como lanzamientos por fases y estrategias azul-verde, para implementar cambios de forma segura. Para un control más preciso, puedes usar la correlación basada en encabezados para probar cambios con un pequeño porcentaje de tráfico o dividir el tráfico por peso para cambiar gradualmente las solicitudes entre diferentes back-ends de clúster.
Las puertas de enlace de varios clústeres también te permiten duplicar el tráfico, lo que envía una copia de las solicitudes de los usuarios en tiempo real a un servicio nuevo para probar el rendimiento sin afectar a los usuarios. Para garantizar la confiabilidad y evitar sobrecargas, las Gateways de varios clústeres admiten la conmutación por error basada en el estado y el balanceo de cargas basado en la capacidad, que distribuye las solicitudes según la capacidad definida de tus servicios.
Cómo funciona la puerta de enlace de varios clústeres
Todos los clústeres de GKE que participan en una configuración de puerta de enlace de varios clústeres deben estar registrados en una flota. Una flota proporciona una agrupación lógica de clústeres, lo que permite una administración y comunicación coherentes entre los clústeres. Un clúster de GKE dentro de la flota se designa como el clúster de configuración.
El clúster de configuración actúa como un punto de control centralizado para la configuración de tu puerta de enlace de varios clústeres. Implementas todos los recursos de la API de la puerta de enlace de varios clústeres, como Gateway y HTTPRoute, solo en este clúster designado.
El controlador de GKE Gateway observa el servidor de la API de Kubernetes del clúster de configuración para estos recursos.
Para elegir un clúster de configuración, considera un clúster de GKE con alta disponibilidad, como un clúster regional. Esto garantiza que el controlador pueda conciliar continuamente las actualizaciones de los recursos de la API de Gateway.
El controlador de la puerta de enlace de varios clústeres usa servicios de varios clústeres (MCS) para descubrir y acceder a los servicios de Kubernetes en varios clústeres de GKE dentro de una flota. MCS es una función de GKE que permite el descubrimiento de servicios y la conectividad entre los servicios que se ejecutan en diferentes clústeres de GKE dentro de una flota.
MCG usa MCS para descubrir qué Services están disponibles en qué clústeres para enrutar el tráfico externo a los Services. El controlador de MCG usa recursos de la API de MCS para agrupar Pods en un solo Service que se pueda dirigir a varios clústeres y abarcarlos.
Según las configuraciones que definiste en los recursos de la API de Gateway, el controlador de GKE Gateway proporciona un balanceador de cargas de aplicaciones externo o interno. Este balanceador de cargas funciona como frontend para 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 de alto nivel, se describe el proceso para implementar una puerta de enlace de varios clústeres:
Define una puerta de enlace: En una configuración de puerta de enlace de varios clústeres, creas un recurso de puerta de enlace que define el punto de entrada para tu tráfico en el clúster de configuración. El recurso Gateway especifica un GatewayClass, que es una plantilla para un tipo particular de balanceador de cargas, como un balanceador de cargas de aplicaciones externo global o un balanceador de cargas de aplicaciones interno regional. En GKE, las siguientes GatewayClasses implementan puertas de enlace de varios clústeres:
gke-l7-global-external-managed-mc: Aprovisiona un balanceador de cargas de aplicaciones externo global.gke-l7-regional-external-managed-mc: Provisiona un balanceador de cargas de aplicaciones externo regional.gke-l7-cross-regional-internal-managed-mc: Aprovisiona un balanceador de cargas de aplicaciones interno.gke-l7-rilb-mc: Aprovisiona un balanceador de cargas de aplicaciones interno.gke-l7-gxlb-mc: Aprovisiona un balanceador de cargas de aplicaciones clásico.
La puerta de enlace también define cómo el balanceador de cargas escucha el tráfico entrante especificando qué objetos de escucha de red (puertos y protocolos) se expondrán. Para obtener más información sobre las clases de Gateway que admite GKE, consulta Servicios de varios clústeres.
Adjunta HTTPRoutes a la Gateway: Los recursos de HTTPRoute definen cómo se enruta el tráfico HTTP/S entrante a servicios de backend específicos. Las HTTPRoutes se adjuntan a los recursos de Gateway y especifican reglas basadas en nombres de host, rutas de acceso, encabezados y mucho más. HTTPRoute también admite funciones avanzadas de administración del tráfico, como la división y la duplicación del tráfico.
Crear balanceador de cargas: Cuando implementas recursos de Gateway y HTTPRoute, el controlador de GKE Gateway interpreta estos objetos de la API y, a su vez, configura de forma dinámica la infraestructura de balanceo de cargas Google Cloud necesaria. Luego, el balanceador de cargas 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 ilustra cómo una Gateway de varios clústeres funciona como un balanceador de cargas centralizado para las aplicaciones que se ejecutan en dos clústeres de GKE en diferentes regiones:
El comportamiento del balanceador de cargas se configura según las reglas definidas en tus recursos de HTTPRoute. Cuando el tráfico de usuarios llega a la dirección IP del balanceador de cargas de Google Cloud aprovisionado (según lo define tu recurso de Gateway), el balanceador de cargas, que es un proxy administrado por Google, enruta el tráfico. Este proxy (ya sea un proxy de Google Front End o un proxy regional) dirige el tráfico al extremo de servicio de backend adecuado dentro del clúster de GKE correcto, según los siguientes criterios:
- Verificaciones de estado
- Reglas de división del tráfico
- Capacidad
El tráfico fluye directamente al Pod óptimo en el clúster seleccionado.
¿Qué sigue?
- Obtén más información para habilitar puertas de enlace de varios clústeres.
- Lee una descripción general sobre cómo funcionan las puertas de enlace en GKE.