Usar comprobaciones del estado

Google Cloud proporciona mecanismos de comprobación del estado que determinan si las instancias de backend responden correctamente al tráfico. En este documento se describe cómo crear y usar comprobaciones del estado para balanceadores de carga y Cloud Service Mesh.

En esta página se da por hecho que conoces los siguientes conceptos:

Crear comprobaciones del estado

Google Cloud te permite crear o seleccionar una comprobación del estado cuando completes la configuración de backend del balanceador de carga en la Google Cloud consola.

También puede crear una comprobación del estado independientemente de la configuración del balanceador de carga en la Google Cloud consola. Esto resulta útil si primero tienes que crear la comprobación del estado o si necesitas usar una comprobación del estado en varios balanceadores de carga. Puedes crear una comprobación de estado mediante la Google Cloud consola, la CLI de Google Cloud o las APIs REST.

Consola

  1. Ve a la página de comprobaciones de estado en la Google Cloud consola.
    Ir a la página Comprobaciones de estado
  2. Haz clic en Crear una comprobación del estado.
  3. En la página Crear comprobación del estado, proporciona la siguiente información:

    • Nombre: indica un nombre para la comprobación del estado.
    • Descripción: puede añadir una descripción.
    • Ámbito: selecciona un ámbito, Global o Regional, en función del tipo de balanceador de carga.
      • Si has seleccionado Regional, elige una Región en el menú desplegable.
    • Protocolo: elige un protocolo de comprobación de estado.

    • Puerto: indica un número de puerto. Cuando creas una comprobación del estado en la consola, debes especificar el puerto mediante un número de puerto. Google Cloud

    • Protocolo de proxy: opcionalmente, puedes añadir un encabezado de proxy a las solicitudes realizadas por los sistemas de sondeo de comprobación del estado.

    • Ruta de solicitud y respuesta: en los protocolos HTTP, HTTPS y HTTP2, puedes proporcionar de forma opcional una ruta de URL para que los sistemas de comprobación de estado se pongan en contacto. Para obtener más información, consulta Banderas adicionales para comprobaciones de estado de HTTP, HTTPS y HTTP/2.

    • Solicitud y Respuesta: en los protocolos TCP y SSL, puedes especificar una cadena de texto ASCII para enviar y una cadena de texto de respuesta esperada. Para obtener más información, consulta Banderas adicionales para las comprobaciones de estado de SSL y TCP.

    • Intervalo de comprobación: define el tiempo que transcurre desde el inicio de una comprobación hasta el inicio de la siguiente.

    • Tiempo de espera: define el tiempo que Google Cloud espera una respuesta a una petición de sondeo. Su valor debe ser inferior o igual al intervalo de comprobación.

    • Umbral de buen estado: define el número de sondeos secuenciales que deben completarse correctamente para que la instancia de VM se considere en buen estado.

    • Umbral de mal estado: define el número de sondeos secuenciales que deben fallar para que la instancia de VM se considere en mal estado.

  4. Haz clic en Crear.

gcloud

  • Para crear una comprobación del estado global, usa el comando compute health-checks create correspondiente:

    gcloud compute health-checks create PROTOCOL NAME \
        --global \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    
  • Para crear una comprobación del estado regional, usa el comando adecuado compute health-checks create:

    gcloud compute health-checks create PROTOCOL NAME \
        --region=REGION \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    

Haz los cambios siguientes:

  • PROTOCOL define el protocolo que se usa para la comprobación de estado. Las opciones válidas son GRPC, GRPC_WITH_TLS, HTTP, HTTPS, HTTP2, SSL y TCP.

  • NAME es el nombre de la comprobación del estado. En un proyecto determinado, cada comprobación de estado global debe tener un nombre único, y las comprobaciones de estado regionales deben tener nombres únicos en una región determinada.

  • REGION: la región de la comprobación del estado. En el caso de los balanceadores de carga regionales, la región de la comprobación del estado debe coincidir con la región del servicio de backend.

  • DESCRIPTION es una descripción opcional.

  • CHECK_INTERVAL es el tiempo transcurrido desde el inicio de la conexión de un sistema de sondeo de comprobación del estado hasta el inicio de la siguiente. Las unidades son segundos. Si se omite, Google Cloud usa el valor 5s (5 segundos).

  • TIMEOUT es el tiempo que Google Cloud espera una respuesta a una petición de comprobación. El valor de TIMEOUT debe ser inferior o igual a CHECK_INTERVAL. Las unidades son segundos. Si se omite,Google Cloud usa el valor 5s (5 segundos).

  • HEALTHY_THRESHOLD y UNHEALTHY_THRESHOLD especifican el número de sondeos secuenciales que deben completarse correctamente o fallar para que la instancia de VM se considere en buen estado o en mal estado. Si se omite alguno de los dos,Google Cloud usa un umbral predeterminado de 2.

  • PORT_SPECIFICATION: define la especificación del puerto mediante una de las marcas de especificación de puerto.

  • ADDITIONAL_FLAGS son otras marcas para especificar puertos y opciones específicas de PROTOCOL. Consulta Banderas adicionales para comprobaciones de estado de HTTP, HTTPS y HTTP/2, Banderas adicionales para comprobaciones de estado de SSL y TCP o Bandera adicional para comprobaciones de estado de gRPC.

Terraform

Para crear una comprobación del estado global, usa el recurso google_compute_health_check.

resource "google_compute_health_check" "health_check_tcp_with_logging" {
  provider = google-beta

  name = "health-check-tcp"

  timeout_sec        = 1
  check_interval_sec = 1

  tcp_health_check {
    port = "22"
  }

  log_config {
    enable = true
  }
}

Para crear una comprobación del estado regional, usa el recurso google_compute_region_health_check.

resource "google_compute_region_health_check" "default" {
  name               = "tcp-health-check-region-west"
  timeout_sec        = 5
  check_interval_sec = 5
  tcp_health_check {
    port = "80"
  }
  region = "us-west1"
}

Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

API

Modificar comprobaciones del estado

No puedes convertir una comprobación del estado en una comprobación del estado antigua (ni viceversa) modificándola. Tampoco puedes cambiar el nombre ni el ámbito de una comprobación del estado (por ejemplo, de global a regional).

Consola

  1. Ve a la página de comprobaciones de estado en la Google Cloud consola.
    Ir a la página Comprobaciones de estado
  2. Haz clic en una comprobación de estado para ver sus detalles.
  3. Si necesitas modificar la comprobación de estado, haz clic en Editar y, a continuación, haz lo siguiente:
    • Haz los cambios necesarios en los parámetros.
    • Haz clic en Guardar.

gcloud

  1. Identifica el nombre y el ámbito de la comprobación del estado. Para ver las instrucciones, consulta Listar comprobaciones de estado.

  2. A excepción del nombre, el protocolo y el ámbito de una comprobación del estado, puedes modificar cualquiera de las marcas comunes, las marcas de especificación de puerto y otras marcas adicionales. Para modificar una comprobación del estado, usa el comando compute health-checks update correspondiente. En el caso de las marcas que omitas, se conservarán los ajustes preconfigurados.

    • Ejemplo de modificación de una comprobación del estado global: el siguiente comando modifica una comprobación del estado de HTTP global llamada hc-http-port-80 cambiando su intervalo de comprobación, su tiempo de espera y su ruta de solicitud:

      gcloud compute health-checks update http hc-http-port-80 \
          --global \
          --check-interval=20s \
          --timeout=15s \
          --request-path="/health"
      
    • Ejemplo de modificación de una comprobación del estado regional: el siguiente comando modifica una comprobación del estado TCP regional en us-west1 llamada hc-west1-tcp-ldap cambiando su especificación de puerto:

      gcloud compute health-checks update tcp hc-west1-tcp-ldap \
          --region=us-west1 \
          --port=631
      

API

  1. Identifica el nombre y el ámbito de la comprobación del estado. Consulta las instrucciones para listar comprobaciones de estado.

  2. A excepción del nombre, el protocolo y el ámbito de una comprobación del estado, puedes modificar cualquiera de las marcas comunes, las marcas de especificación de puerto y otras marcas adicionales con estas llamadas a la API. Usa las llamadas a la API patch para conservar los ajustes preconfigurados que no se hayan definido explícitamente en la solicitud.

Mostrar lista de comprobaciones del estado

Consola

  1. Ve a la página de comprobaciones de estado en la Google Cloud consola.
    Ir a la página Comprobaciones de estado
  2. Haz clic en una comprobación de estado para ver sus detalles.

gcloud

Para enumerar las comprobaciones de estado, usa el comando compute health-checks list:

  • Para enumerar las comprobaciones del estado globales, sigue estos pasos:

    gcloud compute health-checks list \
        --global
    
  • Para enumerar las comprobaciones del estado regionales, sustituye REGION_LIST por una lista de regiones separadas por comas Google Cloud .

    gcloud compute health-checks list \
        --regions=REGION_LIST
    

Una vez que sepas el nombre y el ámbito de una comprobación de estado, usa el comando compute health-checks describe para ver su configuración actual.

  • Para describir una comprobación del estado global, sustituye NAME por su nombre.

    gcloud compute health-checks describe NAME \
        --global
    
  • Para describir una comprobación del estado regional, sustituye NAME por su nombre y REGION por su región.

    gcloud compute health-checks describe NAME \
        --region=REGION
    

API

Para enumerar las comprobaciones de estado, usa estas llamadas a la API:

Para describir la configuración actual de una comprobación de estado, usa lo siguiente:

Marcas adicionales

En esta sección se describen otras marcas que puede usar al crear o modificar una comprobación del estado. Algunas marcas, como la especificación de puertos, deben definirse mediante gcloud o la API.

Marcas de especificación de puerto

Si creas una comprobación de estado con la CLI de Google Cloud o la API, tienes dos opciones para especificar el puerto de la comprobación de estado. En la siguiente tabla se muestran las opciones de especificación de puertos para combinaciones válidas de balanceadores de carga y backends. El término grupo de instancias hace referencia a los grupos de instancias sin gestionar, a los grupos de instancias gestionadas zonales o a los grupos de instancias gestionadas regionales.

Cada comprobación de estado solo puede usar un tipo de especificación de puerto.

Producto Tipo de backend Opciones de especificación de puerto
Balanceador de carga de red de paso a través externo Grupos de instancias y NEGs admitidas

--port: especifica un puerto TCP por número, de 1 a 65535.

La marca --use-serving-port se ignora en las comprobaciones de estado asociadas a un balanceador de carga de red interno de tipo pasarela porque los servicios de backend de este balanceador de carga no se suscriben a ningún puerto con nombre. Esto se debe a que son balanceadores de carga de transferencia que envían paquetes directamente a los backends en lugar de crear nuevas conexiones del balanceador de carga al backend.

Grupos de destino Comprobaciones de estado antiguas que admiten la especificación del número de puerto (--port).
Balanceador de carga de red de paso a través interno Grupos de instancias y NEGs admitidas

--port: especifica un puerto TCP por número, de 1 a 65535.

La marca --use-serving-port se ignora en las comprobaciones de estado asociadas a un balanceador de carga de red interno de tipo pasarela porque los servicios de backend de este balanceador de carga no se suscriben a ningún puerto con nombre. Esto se debe a que son balanceadores de carga de transferencia que envían paquetes directamente a los backends en lugar de crear nuevas conexiones del balanceador de carga al backend.

Balanceador de carga de aplicación externo global

Balanceador de carga de aplicación clásico

Balanceador de carga de aplicación externo regional

Balanceador de carga de aplicación interno interregional

Balanceador de carga de aplicación interno regional

Balanceador de carga de red con proxy externo global

Balanceador de carga de red con proxy clásico

Balanceador de carga de red con proxy externo regional

Balanceador de carga de red con proxy interno interregional

Balanceador de carga de red con proxy interno regional

Cloud Service Mesh
NEGs admitidas
  • --port: especifica un puerto TCP por número, de 1 a 65535.
  • --use-serving-port: usa el puerto de cada endpoint del grupo de endpoints de red.
Grupos de instancias
  • --port: especifica un puerto TCP por número, de 1 a 65535.
  • --use-serving-port: Usa el mismo puerto con nombre del grupo de instancias al que se suscribe el servicio de backend.

Si omite la especificación del puerto al crear la comprobación del estado,Google Cloud utilizará los siguientes valores predeterminados:

  • Si el protocolo de la comprobación de estado es TCP o HTTP, se usa --port=80.
  • Si el protocolo de la comprobación del estado es SSL, HTTPS o HTTP2, se usa --port=443.
  • Si el protocolo de comprobación del estado es GRPC o GRPC_WITH_TLS, no hay ningún valor predeterminado implícito, por lo que debes incluir la especificación del puerto.

Marcas adicionales para las comprobaciones de estado HTTP, HTTPS y HTTP/2

Además de las marcas comunes y la especificación de puertos, puedes usar las siguientes marcas opcionales para las comprobaciones de estado HTTP, HTTPS y HTTP/2. En este ejemplo se crea una comprobación del estado de HTTP llamada hc-http-port-80 que usa el puerto 80 con los criterios predeterminados de intervalo, tiempo de espera y umbral de estado.

gcloud compute health-checks create HTTP_PROTOCOL hc-http-port-80 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --host=HOST \
    --proxy-header=PROXY_HEADER \
    --request-path=REQUEST_PATH \
    --response=RESPONSE
  • HTTP_PROTOCOL: puede ser http (HTTP/1.1 sin TLS), https (HTTP/1.1 con TLS) o http2 (HTTP/2 con TLS).
  • COMMON_FLAGS: define las marcas comunes. Consulta el procedimiento de creación.
  • PORT_SPECIFICATION: define la especificación del puerto mediante una de las marcas de especificación de puerto.
  • HOST te permite proporcionar un encabezado HTTP Host. Si se omite, se usa la dirección IP de la regla de reenvío del balanceador de carga.
  • PROXY_HEADER debe ser NONE o PROXY_V1. Si se omite, se usaráGoogle Cloud NONE. El valor de PROXY_V1 añade el encabezado PROXY UNKNOWN\r\n.
  • REQUEST_PATH especifica la ruta de URL que usa Google Cloud al enviar solicitudes de comprobación de estado. Si se omite, la solicitud de comprobación del estado se envía a /.
  • RESPONSE define una respuesta esperada opcional. Las cadenas de respuesta deben seguir estas reglas:
    • La cadena de respuesta debe estar formada por letras, números y espacios ASCII.
    • La cadena de respuesta puede tener hasta 1024 caracteres.
    • No se admiten comodines.
    • La comprobación basada en contenido no admite la inversión; por ejemplo, no se admiten operadores como ! en HAProxy.

Si Google Cloud encuentra la cadena de respuesta esperada en cualquier parte de los primeros 1024 bytes del cuerpo de la respuesta recibida y el estado HTTP es 200 (OK), la prueba se considera correcta.

Las marcas --request-path y --response modifican los criterios de éxito de la prueba de comprobación del estado.

Marcas adicionales para las comprobaciones del estado de SSL y TCP

Además de las marcas comunes y la especificación de puertos, puede usar las siguientes marcas opcionales para las comprobaciones del estado de SSL y TCP. En este ejemplo se crea una comprobación del estado TCP llamada hc-tcp-3268 que usa el puerto 3268 con los criterios de intervalo, tiempo de espera y umbral de estado predeterminados.

gcloud compute health-checks create tcp hc-tcp-3268 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --proxy-header=PROXY_HEADER \
    --request=REQUEST_STRING \
    --response=RESPONSE_STRING
  • El protocolo puede ser tcp (en este ejemplo) o ssl.
  • COMMON_FLAGS: define las marcas comunes. Consulta el procedimiento de creación.
  • PORT_SPECIFICATION: define la especificación del puerto mediante una de las marcas de especificación de puerto.
  • PROXY_HEADER debe ser NONE o PROXY_V1. Si se omite, se usaráGoogle Cloud NONE. El valor de PROXY_V1 añade el encabezado PROXY UNKNOWN\r\n.
  • REQUEST_STRING: Puedes proporcionar una cadena de hasta 1024 caracteres ASCII para enviarla una vez que se haya establecido la sesión TCP o SSL.
  • RESPONSE_STRING: puedes proporcionar una cadena de hasta 1024 caracteres ASCII para la respuesta esperada.

Las marcas --request y --response modifican los criterios de éxito de la prueba de comprobación del estado. Si usas la marca --response, sola o junto con la marca --request, la respuesta devuelta debe coincidir exactamente con la cadena de respuesta esperada.

Marca adicional para las comprobaciones de estado de gRPC

Tu servidor gRPC de backend debe implementar el servicio de comprobación del estado de gRPC, tal como se describe en el protocolo de comprobación del estado de gRPC. Google Cloud envía un mensaje HealthCheckRequest a tus backends llamando al método Check del servicio de comprobación del estado en tu backend. El parámetro de servicio de la solicitud se define como una cadena vacía, a menos que se especifique un nombre de servicio gRPC.

Una comprobación de estado de gRPC puede comprobar el estado de un servicio gRPC. Puedes incluir una cadena de hasta 1024 caracteres ASCII que sea el nombre de un servicio gRPC concreto que se ejecute en una VM o un NEG de backend. Para ello, usa la siguiente marca opcional para las comprobaciones del estado de gRPC:

--grpc-service-name=GRPC_SERVICE_NAME

Por ejemplo, puede que tengas los siguientes servicios y estados que el servidor backend registra en el servicio de comprobación de estado gRPC de tu backend.

  • MyPackage.ServiceA con el estado de publicación SERVING
  • MyPackage.ServiceB con el estado de publicación NOT_SERVING
  • Nombre de servicio vacío con el estado de servicio NOT_SERVING

Si creas una comprobación del estado en MyPackage.ServiceA, como se indica a continuación, la prueba de comprobación del estado devuelve HEALTHY, porque el estado del servicio es SERVING.

gcloud beta compute health-checks create grpc MyGrpcHealthCheckServiceA \
    --grpc-service-name=MyPackage.ServiceA

Si creas una comprobación del estado en MyPackage.ServiceB, la sonda de comprobación del estado devuelve UNHEALTHY porque el estado del servicio es NOT_SERVING.

Si creas una comprobación del estado en MyPackage.ServiceC, que no está registrada en el servicio de comprobación del estado de gRPC, la sonda de comprobación del estado devuelve el estado de gRPC NOT_FOUND, que equivale a UNHEALTHY.

Si creas una comprobación del estado con el nombre de servicio vacío, la comprobación del estado de la sonda devuelve el estado UNHEALTHY, porque el nombre de servicio vacío está registrado con el estado NOT_SERVING.

Comprobaciones del estado antiguas

En esta sección se describe cómo crear, modificar y enumerar comprobaciones del estado de HTTP y HTTPS antiguas. No puedes convertir una comprobación del estado antigua en una comprobación del estado ni viceversa.

Para saber qué tipos de balanceadores de carga admiten comprobaciones del estado antiguas, consulta la guía de balanceadores de carga.

Crear comprobaciones del estado antiguas

Consola

Aunque en la página de comprobaciones del estado de la Google Cloud consola Google Cloud se muestran tanto las comprobaciones del estado como las antiguas y se pueden editar, no se pueden crear comprobaciones del estado antiguas en esa página.

Solo puedes crear una comprobación del estado antigua en la Google Cloud consola cuando creas un balanceador de carga de red externo de pases basado en un grupo de destino. Para crear la comprobación del estado antigua por sí sola, consulta las gcloud o las instrucciones de la API de esta sección.

gcloud

Para crear una comprobación del estado antigua, usa el comando compute http-health-checks create:

gcloud compute LEGACY_CHECK_TYPE create NAME \
    --description=DESCRIPTION \
    --check-interval=CHECK_INTERVAL \
    --timeout=TIMEOUT \
    --healthy-threshold=HEALTHY_THRESHOLD \
    --unhealthy-threshold=UNHEALTHY_THRESHOLD \
    --host=HOST \
    --port=PORT \
    --request-path=REQUEST_PATH

Haz los cambios siguientes:

  • LEGACY_CHECK_TYPE es http-health-checks para una comprobación del estado de HTTP antigua o https-health-checks para una comprobación del estado de HTTPS antigua. Si vas a crear una comprobación del estado antigua para un balanceador de carga de red externo de pases basado en un grupo de destino, debes usar http-health-checks.
  • NAME es el nombre de la comprobación del estado antigua. En un proyecto determinado, cada comprobación de estado antigua debe tener un nombre único.
  • DESCRIPTION es una descripción opcional.
  • CHECK_INTERVAL es el tiempo que transcurre desde el inicio de una sonda hasta el inicio de la siguiente. Las unidades son segundos. Si se omite,Google Cloud usa el valor 5s (5 segundos).
  • TIMEOUT es el tiempo que Google Cloud esperará una respuesta a una petición de sondeo. El valor de TIMEOUT debe ser inferior o igual a CHECK_INTERVAL. Las unidades son segundos. Si se omite, Google Cloud usa el valor 5s (5 segundos).
  • HEALTHY_THRESHOLD y UNHEALTHY_THRESHOLD especifican el número de sondeos secuenciales que deben completarse correctamente o fallar para que una instancia de VM se considere en buen estado o en mal estado. Si se omite alguno de los dos,Google Cloud usa un umbral predeterminado de 2.
  • HOST te permite proporcionar un encabezado HTTP de host. Si se omite, se usará la dirección IP de la regla de reenvío del balanceador de carga.
  • PORT te permite indicar un número de puerto. Si se omite, se usaráGoogle Cloud 80.
  • REQUEST_PATH especifica la ruta de URL que Google Cloud se usa al enviar solicitudes de comprobación del estado. Si se omite, la solicitud de comprobación del estado se envía a /.

API

Terraform

Modificar comprobaciones del estado antiguas

Consola

  1. Ve a la página de comprobaciones de estado en la Google Cloud consola.
    Ir a la página Comprobaciones de estado
  2. Haz clic en una comprobación de estado para ver sus detalles.
  3. Haz clic en Editar , haz los cambios que quieras y, a continuación, haz clic en Guardar.

gcloud

  • Para modificar una comprobación del estado de HTTP antigua, usa el comando compute http-health-checks update y sustituye NAME por su nombre. Al modificar una comprobación de estado antigua con gcloud, se conservan los ajustes preconfigurados de las marcas que omita. Las OTHER_OPTIONS son las opciones descritas en Crear una comprobación del estado antigua.

    gcloud compute http-health-checks update NAME \
      OTHER_OPTIONS
    
  • Para modificar una comprobación del estado de HTTPS antigua, usa el comando compute https-health-checks update y sustituye NAME por su nombre. Al modificar una comprobación de estado antigua con gcloud, se conservan los ajustes preconfigurados de las marcas que omita. Las OTHER_OPTIONS son las opciones descritas en Crear una comprobación del estado antigua.

    gcloud compute https-health-checks update NAME \
      OTHER_OPTIONS
    

API

A excepción del nombre y el tipo de una comprobación del estado antigua, puede modificar cualquiera de las marcas que se usaron para crearla. Las llamadas a la API patch conservan los ajustes preconfigurados que no se hayan definido explícitamente en la solicitud PATCH.

Mostrar comprobaciones del estado antiguas

Consola

  1. Ve a la página de comprobaciones de estado en la Google Cloud consola.
    Ir a la página Comprobaciones de estado
  2. Haz clic en una comprobación de estado antigua para ver sus detalles.

gcloud

  1. Para ver una lista de las comprobaciones del estado de HTTP antiguas, usa el comando compute http-health-checks list:

    gcloud compute http-health-checks list
    

    Para ver una lista de las comprobaciones del estado de HTTPS antiguas, usa el comando compute https-health-checks list:

    gcloud compute https-health-checks list
    
  2. Para describir una comprobación de estado HTTP antigua, usa el comando compute http-health-checks describe y sustituye NAME por su nombre.

    gcloud compute http-health-checks describe NAME
    

    Para describir una comprobación de estado HTTPS antigua, usa el comando compute https-health-checks describe y sustituye NAME por su nombre.

    gcloud compute https-health-checks describe NAME
    

API

  1. Para enumerar las comprobaciones del estado antiguas, sigue estos pasos:

  2. Para describir una comprobación del estado antigua, sigue estos pasos:

Crear las reglas de cortafuegos necesarias

Debes crear reglas de cortafuegos de entrada aplicables a todas las VMs que se estén balanceando para permitir el tráfico de los intervalos de IPs de comprobación del estado. En el siguiente ejemplo se crea una regla de cortafuegos que se aplica a las instancias de VM identificadas por una etiqueta de destino específica.

En este ejemplo, se permite todo el tráfico TCP de los sistemas de comprobación de estado a tus instancias de VM. Google Cloud health check El tráfico TCP incluye tráfico SSL, HTTP, HTTPS y HTTP/2. Si lo prefieres, puedes especificar puertos junto con el protocolo TCP. Sin embargo, si especificas puertos, es posible que tus reglas de cortafuegos se apliquen a una comprobación del estado concreta. Si usas tcp:80 para el protocolo y el puerto, se permitirá el tráfico TCP en el puerto 80, por lo que Google Cloud podría ponerse en contacto con tus VMs mediante HTTP en el puerto 80, pero no podría hacerlo mediante HTTPS en el puerto 443.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de cortafuegos.
    Ve a Políticas de cortafuegos
  2. Haz clic en Crear regla de cortafuegos.
  3. En la página Crear una regla de cortafuegos, proporciona la siguiente información:
    • Nombre: asigna un nombre a la regla. En este ejemplo, usa fw-allow-health-checks.
    • Red: elige una red de VPC.
    • Prioridad: introduce un número para la prioridad. Los números más bajos tienen una prioridad más alta. Asegúrate de que la regla de cortafuegos tenga una prioridad más alta que otras reglas que puedan denegar el tráfico de entrada.
    • Dirección del tráfico: elige entrada.
    • Acción tras coincidencia: elige Permitir.
    • Objetivos: elija Etiquetas de destino especificadas y, a continuación, introduzca las etiquetas en el campo Etiquetas de destino. En este ejemplo, usa allow-health-checks.
    • Filtro de origen: elige Intervalos de IPs.
    • Intervalos de IPs de origen: introduce el intervalo de IPs de origen en función del tipo de balanceador de carga, el tipo de tráfico y el tipo de comprobación de estado. Consulta Intervalos de IPs de sondeo y reglas de cortafuegos.
    • Protocolos y puertos permitidos: usa tcp y el puerto configurado en tu comprobación del estado. TCP es el protocolo subyacente de todos los protocolos de comprobación del estado.
    • Haz clic en Crear.
  4. En cada una de las instancias con balanceo de carga, añade la etiqueta de red para que se aplique esta nueva regla de cortafuegos de entrada. En este ejemplo se usa allow-health-checks para la etiqueta de red.

gcloud

  1. Usa el siguiente comando gcloud para crear una regla de cortafuegos llamada fw-allow-health-checks que permita las conexiones TCP entrantes de los sistemas de comprobación de estadoGoogle Cloud a las instancias de tu red de VPC con la etiqueta allow-health-checks. En función del tipo de balanceador de carga, se admite un conjunto diferente de intervalos de IPs de sondeo y reglas de firewall para el tráfico IPv6 a los backends.

    Sustituye NETWORK_NAME por el nombre de tu red VPC y PORT por los puertos que usa tu balanceador de carga.

    gcloud compute firewall-rules create fw-allow-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=SOURCE_IP_RANGE \
        --target-tags=allow-health-checks \
        --rules=tcp:PORT

    El valor de SOURCE_IP_RANGE depende del tipo de balanceador de carga, del tipo de tráfico y del tipo de comprobación de estado. Consulta Intervalos de IPs de sondeo y reglas de cortafuegos.

  2. En cada una de las instancias con balanceo de carga, añade la etiqueta de red para que se aplique esta nueva regla de cortafuegos de entrada. En este ejemplo se usa allow-health-checks para la etiqueta de red.

Consulta más información en la documentación sobre reglas de cortafuegos y la documentación de la API.gcloud

Documentación relacionada:

  • Para obtener más información sobre cómo especificar destinos para las reglas de cortafuegos, consulta la explicación de los destinos en el resumen de las reglas de cortafuegos y el artículo sobre cómo configurar etiquetas de red.
  • Para obtener más información sobre todas las reglas de cortafuegos que necesitan los balanceadores de carga, consulta Reglas de cortafuegos.

Asociar comprobaciones del estado a balanceadores de carga

Si aún no lo has hecho, consulta el artículo Descripción general de las comprobaciones del estado: selecciona una comprobación del estado.

Para asociar una comprobación del estado a un balanceador de carga nuevo, consulta la guía de configuración del balanceador de carga correspondiente. En esta sección se describe cómo asociar una comprobación de estado a un servicio de backend de un balanceador de carga.

En esta sección se da por hecho que ya has hecho lo siguiente:

Consola

Para asociar una comprobación del estado a un balanceador de carga, 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 un balanceador de carga para ver sus detalles.
  3. Haz clic en Editar y, a continuación, en Configuración de backend.
  4. Elige una comprobación del estado en el menú Comprobación del estado.
  5. Haz clic en Actualizar.

gcloud

Para asociar una comprobación del estado con un servicio backend, sigue estos pasos.

  1. Identifica el nombre y el ámbito del servicio de backend. Los balanceadores de carga de red con paso a través y los balanceadores de carga de red de proxy solo tienen un servicio de backend por balanceador de carga. Los balanceadores de carga de aplicaciones tienen uno o varios servicios de backend asociados a un solo mapa de URLs.

    • Para enumerar los servicios de backend de los balanceadores de carga de red de paso a través internos, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red de paso a través externos, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red con proxy externo global, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red de proxy clásicos, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=(SSL,TCP)"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red con proxy internos entre regiones, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red de proxy externo regionales, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para enumerar los servicios de backend de los balanceadores de carga de red con proxy internos regionales, ejecuta el siguiente comando.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para identificar los servicios de backend de los balanceadores de carga de aplicación externos globales, los balanceadores de carga de aplicación clásicos y los balanceadores de carga de aplicación internos entre regiones, primero identifica un mapa de URLs y, a continuación, describe el mapa. Los mapas de URLs y los servicios de backend de estos balanceadores de carga siempre son globales, independientemente del nivel de servicio de red. Sustituye URL_MAP_NAME por el nombre del mapa de URLs. Los servicios de backend que usa el balanceador de carga se indican en la respuesta.

      gcloud compute url-maps list \
          --global
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --global
      
    • Para identificar los servicios de backend de un balanceador de carga de aplicaciones externo regional o de un balanceador de carga de aplicaciones interno regional, primero identifica un mapa de URLs y, a continuación, describe el mapa. Tanto los mapas de URLs como los servicios de backend de estos balanceadores de carga son regionales. Sustituye REGION_LIST por una lista deGoogle Cloud regiones separadas por comas. Sustituye URL_MAP_NAME por el nombre del mapa de URLs y REGION por su región. Los servicios de backend que usa el balanceador de carga se indican en la respuesta.

      gcloud compute url-maps list \
          --regions=REGION_LIST
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --region=REGION
      
  2. Identifica una comprobación del estado. Consulta Comprobaciones del estado de las fichas.

  3. Asocia una comprobación del estado al servicio de backend mediante el comando compute backend-services update. Cada servicio de backend debe hacer referencia a una única comprobación de estado. En los siguientes comandos, sustituye BACKEND_SERVICE_NAME por el nombre del servicio de backend, HEALTH_CHECK_NAME por el nombre de la comprobación de estado y, si es necesario, REGION por laGoogle Cloud región del servicio de backend, la comprobación de estado o ambos.

    • Para cambiar la comprobación del estado de un balanceador de carga de red de paso a través interno, el servicio de backend de este balanceador debe ser regional. Puede hacer referencia a una comprobación del estado global o regional. En el siguiente ejemplo se muestra una referencia de comprobación de estado regional. Si usas una comprobación de estado global con tu balanceador de carga de red de paso a través interno, usa --global-health-checks en lugar de --health-checks-region.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Para cambiar la comprobación del estado de un balanceador de carga de red de paso a través externo basado en un servicio de backend, ten en cuenta que el servicio de backend de un balanceador de carga de red de paso a través externo es regional. Puede hacer referencia a una comprobación del estado regional.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Para cambiar la comprobación de estado de un balanceador de carga de red con proxy externo global, un balanceador de carga de red con proxy clásico, un balanceador de carga de aplicación externo global, un balanceador de carga de aplicación clásico o un balanceador de carga de aplicación interno entre regiones, tanto el servicio de backend como la comprobación de estado son globales para estos balanceadores de carga. Los balanceadores de carga de aplicaciones pueden hacer referencia a más de una comprobación de estado si hacen referencia a más de un servicio de backend.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --global \
          --health-checks HEALTH_CHECK_NAME \
          --global-health-checks
      
    • Para cambiar la comprobación del estado de un balanceador de carga de aplicaciones externo regional, un balanceador de carga de red con proxy externo regional, un balanceador de carga de aplicaciones interno regional o un balanceador de carga de red con proxy interno regional, tanto el servicio de backend como la comprobación del estado deben ser regionales. Algunos balanceadores de carga pueden hacer referencia a más de una comprobación de estado si pueden hacer referencia a más de un servicio de backend.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      

API

  1. Puedes enumerar los servicios de backend con la llamada a la API backendServices.list.

  2. Ver comprobaciones del estado

  3. Para asociar una comprobación del estado a un servicio de backend, usa una de estas llamadas a la API:

Asociar comprobaciones de estado antiguas con balanceadores de carga de red de paso a través externos basados en grupos de destino

Para asociar una comprobación del estado antigua a un nuevo balanceador de carga de red de paso a través externo, consulta Configurar un balanceador de carga de red de paso a través externo con un grupo de destino. En esta sección se describe cómo asociar una comprobación del estado antigua a un balanceador de carga de red de paso a través externo basado en un grupo de destino.

En esta sección se da por hecho que ya has hecho lo siguiente:

Consola

Para asociar una comprobación de estado a un balanceador de carga de red de paso a través externo basado en un grupo de destino, 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 un balanceador de carga para ver sus detalles.
  3. Haz clic en Editar y, a continuación, en Configuración de backend.
  4. Elige una comprobación del estado antigua en el menú Comprobación del estado. Solo se muestran las comprobaciones del estado antiguas aptas.
  5. Haz clic en Actualizar.

gcloud

Para asociar una comprobación de estado a un balanceador de carga de red de paso a través externo basado en un grupo de destino, sigue estos pasos:

  1. Identifica los grupos de destino. Un balanceador de carga de red de paso a través externo tiene al menos un grupo de destino y puede tener un grupo de copia de seguridad secundario.

    gcloud compute target-pools list
    
  2. Identifica una comprobación del estado antigua mediante el protocolo HTTP. Consulta las comprobaciones de estado antiguas si es necesario.

  3. Asocia la comprobación del estado antigua a los grupos de destino. En los siguientes comandos, sustituye TARGET_POOL_NAME por el nombre del grupo de destino, REGION por su región y LEGACY_CHECK_NAME por el nombre de la comprobación de estado antigua. La comprobación de estado antigua debe usar el protocolo HTTP.

    • Para eliminar una comprobación de estado HTTP antigua de un grupo de destino, sigue estos pasos:

      gcloud compute target-pools remove-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      
    • Para añadir una comprobación del estado de HTTP antigua a un grupo de destino, sigue estos pasos:

      gcloud compute target-pools add-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      

API

  1. Puedes enumerar los grupos de destino con la llamada a la API targetPools.list.

  2. Consulta las comprobaciones del estado antiguas e identifica una comprobación del estado de HTTP antigua.

  3. Para asociar una comprobación del estado de HTTP antigua a un grupo de destino, usa la llamada a la API targetPools.addHealthCheck.

Comprobar el estado de la comprobación del estado

Después de asociar una comprobación de estado a un servicio de backend o a un grupo de destino, puedes obtener el estado de la comprobación de estado instantánea de los backends del balanceador de carga.

Consola

  1. Ve a la página de resumen de balanceo de carga.
    Ir a la página Balanceo de carga
  2. Haga clic en el nombre de un balanceador de carga.
  3. En Backend, inspecciona la columna Healthy. El estado de salud se registra en cada grupo de instancias de backend o grupo de puntos finales de red.

gcloud

  • En todos los balanceadores de carga, excepto en los balanceadores de carga de red de paso a través externos basados en grupos de destino, identifica el nombre y el ámbito (global o regional) del servicio de backend. Para ver una lista completa de los balanceadores de carga y los ámbitos, consulta Servicios de backend.

    Usa el comando compute backend-services get-health y sustituye NAME por el nombre del servicio backend y REGION por su región, si es necesario.

    • Para obtener el estado de salud instantáneo de un servicio de backend global, sigue estos pasos:

      gcloud compute backend-services get-health GLOBAL_BACKEND_SERVICE_NAME \
          --global
      
    • Para obtener el estado de salud instantáneo de un servicio backend regional, sigue estos pasos:

      gcloud compute backend-services get-health REGIONAL_BACKEND_SERVICE_NAME \
          --region=REGION
      
  • En el caso de los balanceadores de carga de red de transferencia externa basados en grupos de destino, identifica el nombre y la región del grupo de destino del balanceador de carga y, a continuación, usa el comando compute target-pools get-health, donde NAME es el nombre del grupo de destino y REGION es su región.

    gcloud compute target-pools get-health TARGET_POOL_NAME \
        --region=REGION
    

API

  • En todos los balanceadores de carga, excepto en los balanceadores de carga de red de paso a través externos basados en grupos de destino, identifica el nombre y el ámbito (global o regional) del servicio de backend. Para ver una lista completa de los balanceadores de carga y los ámbitos, consulta Servicios de backend.

  • En el caso de los balanceadores de carga de red de paso a través externos basados en grupos de destino, usa targetPools.getHealth.