Configurar NEGs por zona

En este documento se incluyen instrucciones para configurar grupos de puntos finales de red (NEGs) por zonas. Antes de configurar NEGs zonales, consulta la descripción general de los grupos de endpoints de red.

NEGs por zonas con GCE_VM_IP endpoints

Se pueden usar como backends de servicios de backend en balanceadores de carga de red de paso a través internos y externos. Para obtener más información, consulta el artículo Descripción general de los NEG zonales: balanceo de carga.

Para ver ejemplos completos, consulta lo siguiente:

NEGs por zonas con GCE_VM_IP_PORT endpoints

Se pueden usar como backends de servicios de backend en los siguientes tipos de balanceadores de carga:

El principal caso práctico de los GCE_VM_IP_PORT NEG zonales es el balanceo de carga nativo de contenedores para que puedas distribuir el tráfico entre los microservicios que se ejecutan en contenedores en tus máquinas virtuales. El balanceo de carga nativo de contenedores permite que los balanceadores de carga se dirijan directamente a los pods y que tomen decisiones sobre la distribución de la carga a nivel de pod en lugar de a nivel de máquina virtual.

Hay dos formas de configurar el balanceo de carga nativo de contenedores: usar NEGs gestionados por GKE Ingress o usar NEGs independientes.

Para obtener instrucciones, consulta:

Configurar NEGs por zona

En el resto de esta página se describe cómo configurar NEGs zonales antes o después de haber creado un balanceador de carga. Ten en cuenta que algunas de estas acciones no se aplican a los NEG zonales creados y gestionados por Ingress.

Crear un grupo de puntos finales de red por zonas

Consola

Para crear un grupo de endpoints de red de zona, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. En Tipo de grupo de puntos finales de red, selecciona Tipo de punto final de red: zonal.
  4. Escriba el nombre del grupo de endpoints de red.
  5. En Tipo de punto final de red, selecciona Grupo de puntos finales de red (por zonas).
  6. Selecciona el Tipo de endpoint en función del tipo de balanceador de carga que utilices.
  7. Selecciona Red.
  8. Selecciona la Subred.
  9. Selecciona la zona.
  10. En el caso de los NEG zonales con GCE_VM_IP_PORT endpoints, introduce un puerto predeterminado.
  11. Haz clic en Crear.

gcloud

Crear un NEG por zonas GCE_VM_IP_PORT

gcloud compute network-endpoint-groups create NEG_NAME \
    --zone=ZONE \
    --network=NETWORK
    [--subnet=SUBNET]
    [--default-port=DEFAULT_PORT]

En este comando, las marcas se definen de la siguiente manera:

  • NEG_NAME es el nombre del nuevo grupo de puntos finales de red. El nombre debe ser único en la zona.
  • ZONE es el nombre de la zona en la que se crea el NEG.
  • NETWORK es el nombre de la red en la que se crea el NEG. Si se omite, Google Cloud usa una red llamada default.
  • SUBNET es el nombre de la subred a la que pertenecen los endpoints de la red. Esta marca es opcional si la red es una red de VPC de modo automático. Si se omite, el NEG se encuentra en la subred creada automáticamente de la región de la zona seleccionada. Esta marca es obligatoria si la red es una VPC en modo personalizado o si necesitas especificar una subred creada manualmente.
  • DEFAULT_PORT es el puerto predeterminado asociado al NEG. Esta marca es opcional. Si se omite, todos los endpoints deben especificarse mediante IP:puerto. Si se incluye, la parte port se puede omitir de la especificación del endpoint y se asumirá el puerto predeterminado.

Crear un NEG por zonas GCE_VM_IP

Para crear un grupo de endpoints de red por zonas GCE_VM_IP, debes especificar network-endpoint-type, como se muestra a continuación: gcloud compute network-endpoint-groups create

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=gce-vm-ip \
    --zone=ZONE \
    --network=NETWORK
    --subnet=SUBNET

En este comando, las marcas se definen de la siguiente manera:

  • NEG_NAME es el nombre del nuevo grupo de puntos finales de red. El nombre debe ser único en la zona.
  • ZONE es el nombre de la zona en la que se crea el NEG.
  • NETWORK es el nombre de la red en la que se crea el NEG.
  • SUBNET es el nombre de la subred a la que pertenecen los endpoints de la red.

Añadir endpoints a un grupo de endpoints de red

Consola

Para añadir endpoints a un grupo de endpoints de red, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el Nombre del grupo de extremos de red al que quiera añadir extremos. Verá la página Detalles del grupo de puntos finales de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.
  4. Selecciona una instancia de VM para añadir sus direcciones IP internas como endpoints de red y haz clic en Añadir. Verás la interfaz de red, la zona, la subred y la dirección IP interna de la interfaz de la VM asignada al endpoint.
  5. En el caso de los NEG zonales con GCE_VM_IP_PORT puntos finales, sigue estos pasos:
    1. Introduce la dirección IP o el intervalo de direcciones del nuevo endpoint de red.
    2. Seleccione el Tipo de puerto.
    3. Si seleccionas Predeterminado, el endpoint usará el puerto predeterminado de todos los endpoints del grupo de endpoints de red.
    4. Si seleccionas Personalizar, introduce el Número de puerto que debe usar el endpoint.
  6. Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos 5 y 6.
  7. Una vez que hayas añadido todos los endpoints que necesites, haz clic en Añadir.

gcloud

Para añadir endpoints a un grupo de endpoints de red, sigue estos pasos:

gcloud compute network-endpoint-groups update NEG_NAME \
    --zone=ZONE \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IP_ADDRESS],[port=PORT]' \
    [--add-endpoint ...]

Haz los cambios siguientes:

  • NEG_NAME: el nombre de la NEG
  • ZONE: el nombre de la zona en la que se encuentra el NEG.
  • INSTANCE_NAME: el nombre de la VM a la que pertenece la dirección IP.
  • IP_ADDRESS: dirección IP opcional del endpoint de red que se va a añadir. Si omite la dirección IP,Google Cloud selecciona la dirección IP interna principal de la instancia de VM que coincida con la subred del NEG.
  • PORT: el puerto del endpoint de red que se va a añadir. El puerto es opcional si se especifica el puerto predeterminado en el NEG. Este campo no se admite en los NEG zonales con endpoints GCE_VM_IP.

Para obtener más información, consulta el artículo Descripción general de los grupos de puntos finales de red zonales.

Por ejemplo, para añadir endpoints a un NEG zonal GCE_VM_IP_PORT:

gcloud compute network-endpoint-groups update my-lb-neg \
    --zone=asia-southeast1-a \
    --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80'

Añadir un NEG zonal a un servicio de backend

Consola

Para añadir un grupo de endpoints de red a un servicio de backend, sigue estos pasos:

  1. Ve a la página Balanceo de carga de la Google Cloud consola.
    Ir a la página Balanceo de carga
  2. Haga clic en el nombre del balanceador de carga cuyo servicio de backend quiera editar.
  3. En la página Detalles del balanceador de carga, haga clic en Editar .
  4. En la página Editar balanceador de carga, haz clic en Configuración de backend.
  5. En la página Configuración de backend, haz clic en Editar .
  6. Haz clic en + Añadir backend.
  7. Selecciona un grupo de endpoints de red por zonas y haz clic en Hecho.
  8. Haz clic en Actualizar.

gcloud

Para añadir un NEG a un servicio de backend, sigue estos pasos:

gcloud compute backend-services add-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

Por ejemplo, para añadir un GCE_VM_IP_PORT NEG zonal a un servicio de backend, sigue estos pasos:

gcloud compute backend-services add-backend my-lb \
   --network-endpoint-group my-lb-neg \
   --network-endpoint-group-zone=asia-southeast1-a \
   --global \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=5

Quitar un NEG de un servicio backend

Consola

  1. Ve a la página Balanceo de carga de la Google Cloud consola.
    Ir a la página Balanceo de carga
  2. Haga clic en el nombre del balanceador de carga cuyo servicio de backend quiera editar.
  3. En la página Detalles del balanceador de carga, haga clic en Editar .
  4. En la página Editar balanceador de carga, haz clic en Configuración de backend.
  5. En la página Configuración de backend, haz clic en Editar del servicio de backend del que vas a quitar el NEG.
  6. En la sección Backend, busque el NEG que quiera quitar y haga clic en el icono de papelera correspondiente.
  7. Haz clic en Actualizar.

gcloud

Para quitar un NEG de un servicio backend, sigue estos pasos:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
    --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
    --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE

Por ejemplo:

gcloud compute backend-services remove-backend my-lb \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=asia-southeast1-a

Quitar endpoints de un grupo de endpoints de red

Cuando se elimina un punto final de red de un NEG de balanceo de carga, se activa el drenaje de conexiones en función de los parámetros de drenaje especificados en el servicio de backend. Si varios servicios de backend hacen referencia al mismo NEG, se aplica el intervalo de drenaje máximo de todos los servicios de backend.

Consola

Para quitar endpoints de un grupo de endpoints de red, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el Nombre del grupo de extremos de red del que quiera eliminar extremos. Verás la página Detalles del grupo de puntos finales de red.
  3. Selecciona los puntos finales de red que quieras eliminar y haz clic en Quitar punto final.

gcloud

Para quitar endpoints de un grupo de endpoints de red, sigue estos pasos:

gcloud compute network-endpoint-groups update NEG_NAME \
--zone=ZONE \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
[--remove-endpoint ...]

Por ejemplo, para quitar un endpoint de un GCE_VM_IP_PORT NEG zonal:

gcloud compute network-endpoint-groups update my-lb-neg \
     --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \
     --zone=asia-southeast1-a

Listar grupos de puntos finales de red

Consola

Para ver una lista de grupos de endpoints de red, ve a la página Grupos de endpoints de red de la Google Cloud consola.
Ve a la página Grupos de puntos finales de red

gcloud

Para enumerar los grupos de endpoints de red, sigue estos pasos:

gcloud compute network-endpoint-groups list

Describir un grupo de endpoints de red específico

Consola

Para obtener los detalles de un grupo de endpoints de red específico, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el nombre del grupo de endpoints de red cuyos detalles quiera ver.

gcloud

Para obtener los detalles de un grupo de endpoints de red específico, sigue estos pasos:

gcloud compute network-endpoint-groups describe NEG_NAME \
    --zone=ZONE

Haz los cambios siguientes:

  • NEG_NAME: el nombre del grupo de puntos finales de red
  • ZONE: nombre opcional de la zona en la que se creó el NEG.

Por ejemplo, el siguiente comando gcloud muestra información sobre el grupo de endpoints de red my-lb-neg.

gcloud compute network-endpoint-groups describe my-lb-neg \
    --zone=asia-southeast1-a

El resultado del comando es el siguiente:

    creationTimestamp: '2018-04-09T14:51:34.381-07:00'
    id: '5260475207627726473'
    kind: compute#networkEndpointGroup
    loadBalancer:
      defaultPort: 80
      network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default
      zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a

Eliminando grupos de endpoints de red

No se puede eliminar un grupo de endpoints de red si está asociado a un servicio de backend. Antes de eliminar un NEG, asegúrate de que esté separado del servicio de backend.

Si eliminas una VM, se quitarán inmediatamente todos los endpoints de red de la VM del NEG y se cerrarán todas las conexiones. Si elimina un NEG después de eliminar un servicio de backend, también se eliminarán todos los endpoints de ese NEG sin drenaje de conexiones.

Consola

Para quitar un grupo de endpoints de red de un servicio de backend, sigue estos pasos:

  1. Ve a la página Balanceo de carga de la Google Cloud consola.
    Ir a la página Balanceo de carga
  2. Haga clic en el nombre del balanceador de carga cuyo servicio de backend quiera editar.
  3. En la página Detalles del balanceador de carga, haga clic en Editar .
  4. En la página Editar balanceador de carga, haz clic en Configuración de backend.
  5. En la página Configuración de backend, haz clic en Editar del servicio de backend del que vas a quitar el NEG.
  6. En la sección Backend, busque el NEG que quiera quitar y haga clic en el icono de papelera correspondiente.
  7. Haz clic en Actualizar.

Para eliminar un grupo de endpoints de red, siga estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Busca el grupo de endpoints de red que quieras eliminar.
  3. Haz clic en el icono de la papelera de esa fila.

gcloud

Para quitar un grupo de endpoints de red de un servicio de backend, sigue estos pasos:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

Para eliminar un grupo de endpoints de red, siga estos pasos:

gcloud compute network-endpoint-groups delete NEG_NAME \
    --zone=ZONE

Por ejemplo:

gcloud compute backend-services remove-backend my-neg-backend \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \
    --zone=asia-southeast1-a

Listar endpoints de un grupo de endpoints de red

Consola

Para ver una lista de los endpoints de un grupo de endpoints de red, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el Nombre del grupo de extremos de red del que quiera eliminar extremos. Verás la página Detalles del grupo de puntos finales de red, en la que se muestran los puntos finales del grupo.
  3. Para filtrar los endpoints, cree pares clave:valor en el campo de texto de Endpoints de red de este grupo.

gcloud

Para enumerar todos los endpoints de red de un grupo de endpoints de red, sigue estos pasos:

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
     --zone=ZONE

Filtrado personalizado al enumerar los endpoints de un grupo de endpoints de red

Puede usar un filtro personalizado para limitar los endpoints que se muestran en un grupo de endpoints de red. El filtrado personalizado solo está habilitado para la API REST. No puedes usar filtros personalizados desde la consola Google Cloud ni con la interfaz de línea de comandos gcloud.

Para obtener más información, consulta la documentación del método networkEndpointGroups.listNetworkEndpoints.

Comprobación del estado de los endpoints de red

Los servicios de backend con backends de NEGs zonales deben usar una comprobación de estado cuyo puerto sea:

  • Un puerto fijo (numerado) (--port)
  • configurado para usar el puerto de servicio del endpoint de red (--use-serving-port)

En el ejemplo siguiente se crea una comprobación del estado de HTTP que usa el puerto de servicio del endpoint de red con la marca --use-serving-port. Ten en cuenta que la marca --use-serving-port se implementa con gcloud compute health-checks create, pero no con gcloud compute health-checks update.

gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME
    --use-serving-port

No puedes usar una comprobación del estado antigua con un backend de NEG zonal. Para obtener más información, consulta el artículo Conceptos de comprobación del estado.