Un grupo de extremos de red (NEG) es un objeto de configuración que especifica un grupo de extremos o servicios de backend. Los NEG zonales son recursos zonales que representan colecciones de direcciones IP o combinaciones de direcciones IP y puertos para recursos de Google Cloud dentro de una sola subred.
Puedes pensar en un grupo de extremos de red como una colección de extremos de red. Cada extremo de un NEG debe apuntar a una dirección IP única de la interfaz de red de una VM. Un extremo de red pertenece a exactamente un grupo de extremos de red. Una sola dirección IP no puede hacer referencia a más de un extremo en un NEG. Sin embargo, los extremos de diferentes NEG pueden hacer referencia a una misma dirección IP. En el siguiente diagrama, se presenta una representación estilizada de este concepto. En el diagrama, los extremos de red que se encuentran en diferentes grupos de extremos de red hacen referencia a "Dirección IP - 2" y "Dirección IP - 3".
Los NEG zonales te permiten hacer lo siguiente:
Enruta paquetes a cualquier interfaz de red de una instancia de VM, incluidas las interfaces que no sean
nic0. Esto te permite crear agrupaciones lógicas de direcciones IP y puertos que representan servicios de software en lugar de VMs completas.Crea un conjunto flexible de direcciones IP en el que se pueda conectar una dirección IP a varios NEG, y cada NEG pueda tener un conjunto de direcciones IP diferente, pero posiblemente superpuesto.
Existen dos tipos de NEG zonales, que se clasifican según el tipo de extremos de red que conforman el NEG. Los dos tipos de NEG zonales admiten diferentes casos de uso y tipos de balanceadores de cargas.
Los NEG zonales con extremos
GCE_VM_IPson compatibles como backends para los siguientes balanceadores de cargas:Los NEG zonales con extremos
GCE_VM_IP_PORTson compatibles como backends para los siguientes balanceadores de cargas basados en proxy:
NEG con extremos GCE_VM_IP
Estos NEG zonales contienen uno o más extremos GCE_VM_IP, y cada uno de ellos tiene una dirección IPv4 interna principal de la interfaz de red de una VM de Compute Engine.
Con un extremo GCE_VM_IP, seleccionas la dirección IP principal de una interfaz de red, por lo que el nivel de granularidad que proporciona es similar al de seleccionar una interfaz de red directamente.
Un extremo GCE_VM_IP no puede apuntar a una dirección IP de un rango de IPv4 de alias.
La interfaz de red a la que hace referencia el extremo GCE_VM_IP debe estar en la misma subred que el NEG.
Como se muestra en la siguiente tabla, los extremos GCE_VM_IP pueden hacer referencia a una interfaz de red de la VM cuyo tipo de pila puede ser solo IPv4 o de pila doble.
No puedes agregar un extremo que sea simultáneamente IPv4 e IPv6 (un "extremo de pila doble") a un NEG zonal GCE_VM_IP. En otras palabras, solo puedes usar una sola dirección IP cuando creas un extremo GCE_VM_IP. Sin embargo, los extremos de NEG zonales GCE_VM_IP pueden hacer referencia a la interfaz de red de una VM cuyo tipo de pila sea solo IPv4 o de pila doble.
| Extremo de red | Interfaz de red de VM compatible |
|---|---|
| Extremo IPv4 (principal) | Interfaz solo IPv4 |
| Extremo IPv4 (principal) | Interfaz de pila doble |
Debido a que un extremo GCE_VM_IP identifica una interfaz de red, no puedes especificar un puerto con un extremo GCE_VM_IP.
Estos tipos de extremos solo se pueden usar como backends en servicios de backend para balanceadores de cargas de red de transferencia internos y balanceadores de cargas de red de transferencia externos.
NEG con extremos GCE_VM_IP_PORT
Estos NEG zonales contienen uno o más extremos GCE_VM_IP_PORT, y cada uno de ellos tiene una de las siguientes combinaciones de direcciones IP junto con el puerto de destino:
Dirección IPv4 principal y puerto: La dirección IPv4 interna principal de una interfaz de red de VM más un número de puerto de destino
Dirección IPv4 de alias y puerto: Una dirección IPv4 interna del rango de direcciones IP de alias asignado a una interfaz de red de VM más un número de puerto de destino
Dirección IPv4 principal + cualquier dirección IPv6 + puerto: La dirección IPv4 interna principal de una interfaz de red de VM y cualquier dirección IPv6 (
/128) de un rango/96asignado a una interfaz de red de VM más un número de puerto de destinoDirección IPv4 de alias + cualquier dirección IPv6 + puerto: Una dirección IPv4 interna del rango de direcciones IP de alias asignado a una interfaz de red de VM y cualquier dirección IPv6(
/128) de un rango de/96asignado a una interfaz de red de VM más un número de puerto de destino
En comparación con un extremoGCE_VM_IP, con un extremo GCE_VM_IP_PORT, puedes seleccionar no solo la dirección IP principal de una interfaz de red, sino cualquier dirección IP, por lo que el nivel de granularidad que proporciona un extremo GCE_VM_IP_PORT es mayor que el de seleccionar solo una interfaz de red.
La interfaz de red a la que hace referencia el extremo GCE_VM_IP_PORT debe estar en la misma subred que el NEG. Cuando omites un número de puerto de un extremo GCE_VM_IP_PORT, Google Cloud usa el número de puerto predeterminado del NEG para el extremo.
Como se muestra en la siguiente tabla, los extremos GCE_VM_IP_PORT pueden hacer referencia a una interfaz de red de una VM cuyo tipo de pila puede ser solo IPv4 o de pila doble.
| Extremo de red | Interfaz de red de VM compatible |
|---|---|
| Extremo IPv4 (principal o alias) | Interfaz solo IPv4 |
| Extremo IPv4 (principal o alias) | Interfaz de pila doble |
Extremo IPv4 (principal o alias) y IPv6 (cualquiera de un rango También se conoce como extremo de "pila doble". |
Interfaz de pila doble |
Debido a que estos backends de NEG zonales te permiten especificar direcciones IP y puertos, puedes distribuir el tráfico de modo detallado entre aplicaciones o contenedores que se ejecutan dentro de las instancias de VM: balanceo de cargas nativo del contenedor.
GKE usa extremos GCE_VM_IP_PORT para lo siguiente:
- Ingress de GKE para balanceadores de cargas de aplicaciones
- La API de puerta de enlace de Kubernetes
Puedes crear balanceadores de cargas autoadministrados que usen NEG zonales cuyos extremos GCE_VM_IP_PORT administren GKE. Para obtener más detalles, consulta Balanceo de cargas nativo del contenedor mediante NEG zonales independientes.
Los balanceadores de cargas de aplicaciones y los balanceadores de cargas de red de proxy admiten NEG zonales con extremos GCE_VM_IP_PORT.
Especificaciones de extremos
Cuando creas un NEG, debes seleccionar una zona, una red y una subred.
Si la red que seleccionaste es una red de VPC de modo automático, puedes omitir la especificación de la subred. Sin embargo, una subred sigue estando asociada con el NEG zonal. Si especificas una red de modo automático, pero no especificas una subred cuando creas un NEG zonal, la subred que usa es la subred creada de manera automática en la región que contiene la zona que seleccionaste para el NEG zonal.
El tipo de NEG zonal se especifica cuando creas el NEG (ya sea GCE_VM_IP o GCE_VM_IP_PORT). Esto determina qué tipos de extremos admite el NEG.
NEG zonales de GCE_VM_IP
Dentro de un NEG determinado, cada extremo GCE_VM_IP en realidad representa una interfaz de red.
Lo siguiente debe ser verdadero para los NEG zonales de GCE_VM_IP:
Debes especificar el nombre de la VM para cada extremo.
Cada VM de extremo debe estar en la misma zona que el NEG.
Cada extremo de un NEG
GCE_VM_IPdebe ser una dirección IP única. Una dirección IP de extremo única puede hacer referencia a más de un NEG.Cada NEG
GCE_VM_IPsiempre está asociado con una red y una subred. La dirección IP de cualquier interfaz de red de una instancia de VM con varias NIC se puede agregar a un NEG, siempre que esté en la misma subred que el NEG.Cada NEG admite la cantidad máxima de extremos por NEG. Los extremos deben distribuirse entre todas las VMs únicas. No se pueden ubicar varios extremos en una sola VM porque una VM no puede tener más de una interfaz de red asociada a la misma subred.
Cuando agregas un extremo para un NEG de GCE_VM_IP, puedes elegir si deseas especificar la dirección IP:
Si se especifica la dirección IP, se debe configurar como la dirección IPv4 interna principal de la interfaz de red de la VM.
Si omites la dirección IP, se seleccionará en función de la interfaz de red que se encuentre en la subred del NEG. Si el extremo hace referencia a una interfaz de red solo IPv4 o de pila doble, se selecciona la dirección IPv4 interna principal de la interfaz de red de la VM como la dirección IP del extremo.
Ten en cuenta que especificar una dirección IP es redundante porque solo puede haber una única interfaz de red que esté en la subred asociada con el NEG.
NEG zonales de GCE_VM_IP_PORT
Dentro de un NEG determinado, cada extremo GCE_VM_IP_PORT puede representar no solo la dirección IP principal de una interfaz de red, sino cualquier dirección IP de una interfaz de red.
Lo siguiente debe ser verdadero para los NEG zonales de GCE_VM_IP_PORT:
Debes especificar el nombre de la VM para cada extremo.
Cada VM de extremo debe estar en la misma zona que el NEG.
Cada extremo del NEG debe ser una combinación única de dirección IP y puerto. Una dirección IP de extremo única y una combinación de puertos pueden hacer referencia a más de un NEG.
Cada VM de extremo debe tener una interfaz de red (NIC) en la misma red de VPC que el NEG. Las direcciones IP de extremo deben estar asociadas a la misma subred especificada como el NEG.
Cada NEG admite la cantidad máxima de extremos por NEG. Los extremos se pueden distribuir entre esa cantidad máxima de VM únicas o pueden ubicarse todos en una sola VM.
Cuando agregas un extremo para un NEG de GCE_VM_IP_PORT, puedes especificar una dirección IP y un puerto, solo una dirección IP, o bien ninguno de los dos:
Si especificas una dirección IP y un puerto, la dirección IP puede ser una dirección IPv4 o una dirección IPv4 y una IPv6. El puerto que se usa es el que elijas. En la sección NEG con extremos
GCE_VM_IP_PORTde este documento, se describe una forma intuitiva de pensar en las diferentes combinaciones.La dirección IPv4 puede ser la dirección IPv4 interna principal o una dirección IPv4 interna del rango de direcciones IP de alias en la interfaz de red. La dirección IPv6 puede ser cualquier dirección (
/128) de un rango/96asignado a una interfaz de red de VM. El puerto que se usa es el que elijas.Si especificas solo una dirección IP, esta puede ser una dirección IPv4 o una dirección IPv4 y una IPv6. El puerto que se usa es el número de puerto predeterminado del NEG para el extremo. En la sección NEG con extremos
GCE_VM_IP_PORTde este documento, se describe una forma intuitiva de pensar en las diferentes combinaciones.La dirección IPv4 puede ser la dirección IPv4 interna principal o una dirección IPv4 interna del rango de direcciones IP de alias en la interfaz de red. La dirección IPv6 puede ser cualquier dirección (
/128) de un rango/96asignado a una interfaz de red de VM. El puerto usado es el número de puerto predeterminado del NEG para el extremo.Si omites la dirección IP y el puerto, la dirección IP se selecciona según la interfaz de red que se encuentra en la subred del NEG. Si el extremo hace referencia a una interfaz de red solo IPv4 o de pila doble, se selecciona la dirección IPv4 interna principal de la interfaz de red de la VM como la dirección IP del extremo.
En cuanto al puerto, Google Cloud usa el número de puerto predeterminado del NEG para el extremo.
Balanceo de cargas con NEG zonales
Los NEG zonales se pueden usar como backends para servicios de backend en un balanceador de cargas.
Cuando usas un NEG zonal como backend para un servicio de backend, todos los demás backends en ese servicio también deben ser NEG zonales del mismo tipo (todos GCE_VM_IP o GCE_VM_IP_PORT). No puedes usar grupos de instancias y NEG zonales como backends en el mismo servicio de backend.
Puedes agregar el mismo extremo de red a más de un NEG zonal. Puedes usar el mismo NEG zonal como backend para más de un servicio de backend.
Los NEG zonales de GCE_VM_IP_PORT pueden usar el modo de balanceo RATE o elmodo de balanceo CONNECTION, según el protocolo del servicio de backend. Los balanceadores de cargas admitidos requieren definir una capacidad objetivo.
Los NEG zonales de GCE_VM_IP deben usar el modo de balanceo CONNECTION. Además, los balanceadores de cargas de red de transferencia internos y los balanceadores de cargas de red de transferencia externos no admiten la configuración de capacidad de destino.
Balanceadores de cargas de red de transferencia
Los NEG zonales con extremos de GCE_VM_IP se pueden usar como backends para servicios de backend solo para balanceadores de cargas de red de transferencia internos y balanceadores de cargas de red de transferencia externos.
Consulta las siguientes secciones sobre los casos de uso principales de los NEG con extremos GCE_VM_IP.
Agrupación flexible de extremos
Al igual que los grupos de instancias, puedes usar el mismo NEG como un backend para varios balanceadores de cargas de red de transferencia. A diferencia de los grupos de instancias, un extremo de NEG puede ser miembro de varios NEG y cada uno de esos NEG se puede usar como backend para uno o más balanceadores de cargas de transferencia. En comparación con los grupos de instancias, no estás restringido por el hecho de que una instancia de VM solo puede ser parte de un único grupo de instancias.
En la siguiente figura, se muestra un ejemplo de arquitectura de un balanceador de cargas de red de transferencia interno con una VM compartida.
Interfaces que no son nic0 como extremos de backend
Los NEG zonales con extremos GCE_VM_IP permiten el balanceo de cargas en interfaces de red de VM que no son nic0. Esto puede ser útil cuando se integra en VMs de dispositivo de terceros que suelen reservar nic0 para las operaciones de administración. Con los NEG GCE_VM_IP, cualquier interfaz de red que no sea nic0 de la misma VM se puede conectar a un backend de NEG de un balanceador de cargas de red de transferencia.
Subdivisión de GKE
GKE usa NEG zonales de GCE_VM_IP y la subdivisión para mejorar la escalabilidad de los balanceadores de cargas de red de transferencia internos de la siguiente manera:
Sin la subdivisión, GKE crea un grupo de instancias no administrado por cada zona, compuesto por los nodos de clúster de todos los grupos de nodos en esa zona. Estos grupos de instancias zonales se usan como backends para uno o más servicios LoadBalancer internos (y para Ingress externos que no usan NEG).
Con la subdivisión, GKE crea GCE_VM_IP NEG zonales para cada servicio LoadBalancer interno. El mismo extremo puede ser miembro de más de un NEG zonal. A diferencia de los grupos de instancias, Google Cloud puede balancear las cargas en más NEG zonales que contienen el mismo extremo.
La subdivisión distribuye el tráfico de forma más eficiente a servicios LoadBalancer internos de clústeres con más de 250 nodos. Por ejemplo, un clúster de GKE de 300 nodos puede tener un servicio LoadBalancer interno con 25 nodos en un NEG porque hay 25 pods para entregar ese servicio. No todos los 300 nodos se deben agregar a un backend de grupo de instancias para este servicio.
Ten en cuenta que las cuotas para NEG, reglas de reenvío, servicios de backend y otros recursos de herramientas de redes de Google Cloud se siguen aplicando.
Para obtener más detalles, consulta Usa la subdivisión del balanceador de cargas de red de transferencia interno.
Balanceadores de cargas de aplicaciones y balanceadores de cargas de red de proxy
En las siguientes ilustraciones, se muestran componentes de configuración para balanceadores de cargas en los que los NEG zonales con extremos GCE_VM_IP_PORT son los backends:
Para obtener más información sobre los requisitos de la arquitectura de estos balanceadores de cargas, consulta los siguientes vínculos:
- Descripción general del balanceador de cargas de aplicaciones externo
- Descripción general del balanceador de cargas de aplicaciones interno
- Descripción general del balanceador de cargas de red del proxy externo
- Descripción general del balanceador de cargas de red de proxy interno
El caso de uso principal para los NEG zonales de GCE_VM_IP_PORT corresponde al balanceo de cargas nativo del contenedor, para que puedas distribuir el tráfico directamente a los contenedores que se ejecutan en las VMs, por ejemplo, direcciones IP de Pod en clústeres de GKE.
El balanceo de cargas nativo del contenedor permite que los balanceadores de cargas se orienten directamente a los Pods y que tomen decisiones de distribución de cargas a nivel de Pod en lugar de hacerlo a nivel de VM.
En el siguiente ejemplo, se demuestra cómo los balanceadores de cargas distribuyen el tráfico entre microservicios que se ejecutan en contenedores en tus VMs. Las VM están configuradas para usar rangos de alias de IP desde sus subredes, y esos rangos son las direcciones que usan los contenedores.
Hay dos formas de configurar el balanceo de cargas nativo del contenedor: usar NEG administrados por Ingress de GKE o usar NEG independientes.
Ingress de Kubernetes con NEG (recomendado)
Cuando los NEG se usan con Ingress, el controlador de Ingress facilita la creación de todos los aspectos de un balanceador de cargas HTTP(S). Esto incluye la creación de la dirección IP virtual, las reglas de reenvío, las verificaciones de estado, las reglas de firewall y mucho más. Si quieres aprender a configurar esto, consulta Balanceo de cargas nativo del contenedor mediante Ingress.
Ingress es la forma recomendada de usar los NEG para el balanceo de cargas nativo del contenedor, ya que tiene muchas características que simplifican la administración de los NEG. Como alternativa, puedes crear un balanceador de cargas de proxy de forma manual, pero aún puedes hacer que GKE administre la membresía del extremo de NEG, como se describe en el siguiente punto (NEG independientes).
Si deseas obtener instrucciones para configurar un balanceador de cargas a través de Ingress, consulta Balanceo de cargas nativo del contenedor mediante Ingress.
NEG independientes
Los NEG independientes proporcionan una forma para que tu clúster de GKE cree NEG zonales con extremos
GCE_VM_IP_PORTque representen direcciones IP de los Pods y puertos de contenedores, mientras te da la flexibilidad de configurar los componentes del balanceador de cargas fuera de GKE.Si deseas ver ejemplos sobre el uso de NEG zonales independientes con GKE, consulta los siguientes vínculos:
Limitaciones
- No puedes usar NEG zonales con redes heredadas.
- Un servicio de backend que usa NEG como backends no puede usar grupos de instancias como backends.
Limitaciones para los NEG zonales de GCE_VM_IP
- Los NEG zonales con extremos
GCE_VM_IPsolo son compatibles con balanceadores de cargas de red de transferencia internos y balanceadores de cargas de red de transferencia externos. - La propiedad
default-portno es compatible con NEG zonales deGCE_VM_IP.
Cuotas
- Para obtener información sobre las cuotas de NEG, como los NEG por proyecto, los NEG por servicio de backend y los extremos por NEG, consulta la página de cuotas del balanceo de cargas.
¿Qué sigue?
- Para obtener información sobre cómo configurar los NEG zonales, consulta Configura grupos de extremos de red zonales.
- Para obtener información sobre cómo usar los NEG zonales en Google Kubernetes Engine, consulta Balanceo de cargas nativo de contenedores mediante Ingress.