En esta página, se proporciona una descripción general de cómo Google Kubernetes Engine (GKE) crea y administra el balanceo de cargas de Cloud. En esta página, se supone que conoces los siguientes conceptos:
- Tipos de Trusted Cloud by S3NS balanceadores de cargas
- Diferencia entre los balanceadores de cargas de capa 4 (balanceadores de cargas de red) y de capa 7 (balanceadores de cargas de aplicaciones)
Esta página está dirigida a arquitectos de nube y especialistas en herramientas de redes que diseñan la red para 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 Trusted Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.
Cómo crea balanceadores de cargas GKE
Para que tus aplicaciones sean accesibles desde fuera del clúster (usuarios externos) o dentro de tu red privada (usuarios internos), puedes exponer tus aplicaciones aprovisionando balanceadores de cargas con las APIs de Gateway, Ingress y Service. Como alternativa, puedes crear los componentes del balanceador de cargas por tu cuenta, mientras que GKE administra los grupos de extremos de red (NEG) que conectan tu balanceador de cargas a los Pods de tu clúster.
Puerta de enlace
El controlador de GKE Gateway es la implementación de Google de la API de Gateway de Kubernetes para Cloud Load Balancing. La API de Gateway es un proyecto de código abierto que tiene como objetivo estandarizar la forma en que las mallas de servicios y los controladores de entrada exponen las aplicaciones en Kubernetes. Está diseñado para ser un sucesor más expresivo, flexible y extensible del recurso de Ingress.
El controlador de la puerta de enlace de GKE se usa para configurar balanceadores de cargas de aplicaciones de capa 7 para exponer el tráfico HTTP(S) a las aplicaciones que se ejecutan en el clúster.
Usa la API de Gateway para implementar tu balanceador de cargas.
Entrada
El controlador de Ingress de GKE es la implementación de Google de la API de Ingress. La API de Ingress te permite administrar el acceso externo a los servicios que se ejecutan en un clúster. Cuando creas un recurso Ingress en GKE, el controlador configura automáticamente un balanceador de cargas de aplicaciones de capa 7 que permite que el tráfico HTTP o HTTP(S) llegue a tus aplicaciones que se ejecutan en el clúster.
GKE Gateway es la opción recomendada para las implementaciones y aplicaciones nuevas que requieren administración avanzada del tráfico, compatibilidad con varios protocolos o mejor capacidad multiusuario. Sin embargo, GKE Ingress es una opción viable para situaciones de enrutamiento HTTP/HTTPS más simples, en especial para las configuraciones existentes en las que los beneficios de migrar a la API de Gateway aún no superan el esfuerzo.
Objetos Service LoadBalancer
La API de Service te permite exponer aplicaciones que se ejecutan como Pods en tu clúster al tráfico externo o interno. Cuando creas un Service de tipo LoadBalancer
, GKE crea automáticamente un balanceador de cargas de red de transferencia de capa 4 (TCP/UDP) según los parámetros de tu manifiesto de Service.
En los balanceadores de cargas de red de transferencia, cuando el tráfico llega a tus VMs de backend, las direcciones IP de origen y destino originales, el protocolo de comunicación (como TCP o UDP) y los números de puerto (si el protocolo los usa) permanecen iguales. Esto significa que el tráfico se pasa directamente a las VMs o los Pods de backend, y el balanceador de cargas no finaliza las conexiones. Los servicios de backend controlan la finalización de las conexiones y garantizan que el tráfico fluya sin problemas desde el cliente hasta el servicio.
Balanceo de cargas ponderado
Si configuraste un servicio LoadBalancer externo al que pueden acceder los clientes fuera de tu red de VPC y las VMs de Trusted Cloud , puedes habilitar el balanceo de cargas ponderado. El balanceo de cargas ponderado distribuye el tráfico según la cantidad de Pods de entrega en cada nodo de GKE, de modo que los nodos que tienen más Pods de entrega reciben una mayor proporción de tráfico en comparación con los nodos que tienen menos Pods.
NEG independientes
Otro método para administrar tus balanceadores de cargas en GKE es crear los componentes del balanceador de cargas por tu cuenta y permitir que GKE administre los NEG. Este tipo de balanceador de cargas se denomina balanceador de cargas de red de proxy. Los NEG son una forma de representar grupos de extremos de backend (por ejemplo, Pods) para el balanceo de cargas.
Este tipo de balanceador de cargas está diseñado solo para el tráfico de TCP. Los balanceadores de cargas de red del proxy distribuyen el tráfico de TCP a los backends en tu red de VPC o en otros entornos de nube. El tráfico finaliza en la capa de balanceo de cargas. Luego, el balanceador de cargas reenvía el tráfico estableciendo nuevas conexiones TCP al backend disponible más cercano.
¿Qué es el balanceo de cargas nativo del contenedor?
El balanceo de cargas nativo del contenedor es la práctica de distribuir el tráfico de manera uniforme directamente a las direcciones IP de los Pods individuales (en lugar de los nodos) con los NEG de GCE_VM_IP_PORT
. Los NEG de GCE_VM_IP_PORT
te permiten especificar extremos de backend con la dirección IP interna principal de una máquina virtual (VM) de Compute Engine o una dirección IP de uno de los rangos de IP de alias configurados de la VM.
El balanceo de cargas nativo del contenedor se usa para todos los balanceadores de cargas de capa 7 administrados por GKE, incluidos los NEG independientes, de puerta de enlace y de Ingress. Los servicios de LoadBalancer no usan el balanceo de cargas nativo del contenedor. Sin embargo, puedes lograr una capacidad similar habilitando el balanceo de cargas ponderado.
El balanceo de cargas nativo del contenedor tiene varias ventajas, como un mejor rendimiento de la red y verificaciones de estado mejoradas, ya que se dirige directamente a los Pods. Para obtener más información, consulta Balanceo de cargas nativo del contenedor.
Tablas de resumen
Usa las siguientes tablas para planificar tu configuración de balanceo de cargas.
Elige un tipo de balanceador de cargas
En la siguiente tabla, se muestra el tipo de balanceador de cargas que se crea para un recurso determinado (puerta de enlace, Ingress o Service LoadBalancer):
Recurso de Kubernetes | Tipo de balanceador de cargas creado | |
---|---|---|
Balanceador de cargas de aplicaciones | Balanceador de cargas de red de transferencia | |
Puerta de enlace | ||
Entrada | ||
Service LoadBalancer |
Elige un método para crear un balanceador de cargas
En la siguiente tabla, se muestran las opciones en GKE para crear el balanceador de cargas que elijas:
Tipo de balanceador de cargas | Métodos para crear el balanceador de cargas elegido | |||
---|---|---|---|---|
Puerta de enlace | Entrada | Service LoadBalancer | NEG independientes | |
Balanceador de cargas de aplicaciones externo global | ||||
Balanceador de cargas de aplicaciones externo clásico | ||||
Balanceador de cargas de aplicaciones externo regional | ||||
Balanceador de cargas de aplicaciones interno regional | ||||
Balanceador de cargas de aplicaciones interno entre regiones | ||||
Balanceador de cargas de red del proxy
(todos los tipos) |
||||
Balanceador de cargas de red de transferencia
(interno y externo) |
¿Qué sigue?
- Obtén más información sobre la API de Gateway en GKE.
- Obtén más información sobre GKE Ingress.
- Obtén información sobre los Services LoadBalancer.