Usar verificações de integridade.

O Google Cloud fornece mecanismos de verificação de integridade que determinam se as instâncias de back-end respondem corretamente ao tráfego. Neste documento, você vai aprender a criar e usar verificações de integridade para balanceadores de carga e o Cloud Service Mesh.

Nesta página, consideramos que você esteja familiarizado com os seguintes conceitos:

Crie verificações de integridade

No Google Cloud, é possível criar ou selecionar uma verificação de integridade quando você conclui a configuração do back-end do balanceador de carga no Console do Google Cloud.

Também é possível criar uma verificação de integridade mesmo quando você não estiver configurando o balanceador de carga no Console do Google Cloud. Isso será útil caso precise criar sua verificação de integridade primeiro ou se precisar usar uma verificação de integridade para vários balanceadores de carga. É possível criar uma verificação de integridade usando o Console do Google Cloud, a Google Cloud CLI ou as APIs REST.

Console

  1. Acesse a página "Verificações de integridade" no Console do Google Cloud.
    Acessar a página "Verificações de integridade"
  2. Clique em Criar verificação de integridade.
  3. Na página Criar uma verificação de integridade, forneça as informações a seguir:
    • Nome: informe um nome para a verificação de integridade.
    • Descrição: opcionalmente, informe uma descrição.
    • Escopo: selecione um escopo, Global ou Regional, dependendo do tipo de balanceador de carga.
      • Se você tiver selecionado Regional, escolha uma Região na lista suspensa.
    • Protocolo: escolha um protocolo de verificação de integridade.
    • Porta: informe um número de porta. Ao criar uma verificação de integridade no Console do Google Cloud, é preciso especificar a porta por meio de um número de porta.
    • Protocolo de proxy: opcionalmente, é possível acrescentar um cabeçalho de proxy às solicitações feitas pelos sistemas de sondagem de verificação de integridade.
    • Solicitar caminho e resposta: para protocolos HTTP, HTTPS e HTTP2, há a opção de informar um caminho de URL para que os sistemas de sondagem de verificação de integridade façam contato. Para mais informações, consulte Sinalizações adicionais para verificações de integridade HTTP, HTTPS e HTTP/2.
    • Solicitação e resposta: para protocolos TCP e SSL, é possível especificar uma string de texto ASCII para enviar e uma string de resposta de texto esperada. Para mais informações, consulte Sinalizações adicionais para verificações de integridade de SSL e TCP.
    • Intervalo de verificação: defina o tempo que decorrerá entre o início de uma sondagem e o início da próxima.
    • Tempo limite: defina por quanto tempo o Google Cloud aguarda uma resposta a uma sondagem. O valor precisa ser menor ou igual ao intervalo de verificação.
    • Limite íntegro: defina o número sequencial de sondagens que precisam ser bem-sucedidas para que a instância da VM seja considerada íntegra.
    • Limite não íntegro: defina o número de sondagens sequenciais que precisam falhar para que a instância de VM não seja considerada íntegra.
  4. Clique em Criar.

gcloud

  • Para criar uma verificação de integridade global, use o comando compute health-checks create apropriado:

    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 criar uma verificação de integridade regional, use o comando compute health-checks create apropriado:

    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
    

Substitua:

  • PROTOCOL define o protocolo usado para a verificação de integridade. As opções válidas são grpc, http, https, http2, ssl e tcp.
  • NAME é o nome da verificação de integridade. Dentro de um determinado projeto, cada verificação de integridade global precisa ter um nome exclusivo. Já as verificações de integridade regionais precisam ter nomes exclusivos em uma determinada região.
  • REGION: a região da verificação de integridade. Para balanceadores de carga regionais, a região da verificação de integridade precisa corresponder à região do serviço de back-end.
  • DESCRIPTION é uma descrição opcional;
  • CHECK_INTERVAL refere-se ao período entre o início da conexão de um sistema de sondagem de verificação de integridade e o início da próxima. As unidades são informadas em segundos. Se omitido, o Google Cloud usará um valor de 5s (5 segundos).
  • TIMEOUT é o tempo que o Google Cloud aguarda uma resposta a uma sondagem. O valor de TIMEOUT precisa ser menor ou igual ao CHECK_INTERVAL. As unidades são informadas em segundos. Se omitido, o Google Cloud usará um valor de 5s (cinco segundos).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD especificam o número sequencial de sondagens que precisam ser bem-sucedidas ou não para que a instância VM seja considerada íntegra ou não. Se omitidos, o Google Cloud usará um limite padrão de 2.
  • PORT_SPECIFICATION: define a especificação da porta usando uma das Sinalizações de especificação de porta.
  • ADDITIONAL_FLAGS são outras sinalizações usadas para especificar portas e opções próprias de PROTOCOL. Consulte Flags adicionais para verificações de integridade HTTP, HTTPS e HTTP/2, Flags adicionais para verificações de integridade de SSL e TCP ou Flag adicional para verificações de integridade do gRPC.

Terraform

Para criar uma verificação de integridade global, use o 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 criar uma verificação de integridade regional, use o 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 como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

API

Modificar verificações de integridade

Não é possível modificar a verificação de integridade para converter uma verificação de integridade em legada ou vice-versa. Também não é possível alterar o nome ou o escopo de uma verificação de integridade (global para regional, por exemplo).

Console

  1. Acesse a página "Verificações de integridade" no Console do Google Cloud.
    Acessar a página "Verificações de integridade"
  2. Clique em uma verificação de integridade para ver os detalhes.
  3. Se você precisar modificar a verificação de integridade, clique em Editar. Em seguida:
    • faça alterações nos parâmetros conforme a necessidade;
    • Clique em Salvar.

gcloud

  1. Identifique o nome e o escopo da verificação de integridade. Para mais instruções, consulte Listar verificações de integridade.

  2. O nome, o protocolo e o escopo de uma verificação de integridade não podem ser alterados, mas é possível modificar qualquer uma das flags comuns, flags de especificação de porta e outras flags adicionais. Para modificar uma verificação de integridade atual, use o comando compute health-checks update apropriado. Para sinalizações omitidas, as configurações pré-configuradas são preservadas.

    • Exemplo de modificação de uma verificação de integridade global: o comando a seguir modifica uma verificação de integridade HTTP global chamada hc-http-port-80 alterando o intervalo de verificação, o tempo limite e o caminho da solicitação:

      gcloud compute health-checks update http hc-http-port-80 \
          --global \
          --check-interval=20s \
          --timeout=15s \
          --request-path="/health"
      
    • Exemplo de modificação de uma verificação de integridade regional: o comando a seguir modifica uma verificação de integridade TCP regional em us-west1 chamada hc-west1-tcp-ldap alterando a especificação de porta:

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

API

  1. Identifique o nome e o escopo da verificação de integridade. Para receber instruções, veja Como listar verificações de integridade.

  2. O nome, o protocolo e o escopo de uma verificação de integridade não podem ser alterados, mas é possível modificar qualquer uma das flags comuns, flags de especificação de porta e outras flags adicionais com estas chamadas de API. Use chamadas de API patch para preservar pré-configurações que não estejam explicitamente definidas na solicitação.

Listar verificações de integridade

Console

  1. Acesse a página "Verificações de integridade" no Console do Google Cloud.
    Acessar a página "Verificações de integridade"
  2. Clique em uma verificação de integridade para ver os detalhes.

gcloud

Para listar as verificações de integridade, use o comando compute health-checks list:

  • Para listar verificações de integridade globais:

    gcloud compute health-checks list \
        --global
    
  • Para listar verificações de integridade regionais: substitua REGION_LIST por uma lista delimitada por vírgulas de regiões do Google Cloud a serem consultadas.

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

Depois de saber o nome e o escopo de uma verificação de integridade, use o comando compute health-checks describe para ver a configuração atual.

  • Para descrever uma verificação de integridade global, substitua NAME pelo nome.

    gcloud compute health-checks describe NAME \
        --global
    
  • Para descrever uma verificação de integridade regional, substitua NAME pelo nome e REGION pela região.

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

API

Para listar as verificações de integridade, use estas chamadas de API:

Para descrever a configuração atual de uma verificação de integridade, use:

Sinalizações adicionais

Nesta seção, descrevemos outras sinalizações que podem ser usadas ao criar ou modificar uma verificação de integridade. Algumas sinalizações, como a especificação da porta, precisam ser definidas usando gcloud ou a API.

Sinalizações de especificação de porta

Se você criar uma verificação de integridade com a CLI do Google Cloud ou a API, terá duas opções para especificar a porta da verificação de integridade. Veja na tabela a seguir as opções de especificação de porta para combinações válidas de balanceador de carga e back-end. O termo grupo de instâncias se refere a grupos de instâncias não gerenciadas, gerenciadas por zona ou regionais.

Cada verificação de integridade só pode usar um tipo de especificação de porta.

Produto Tipo de back-end Opções de especificação de porta
Balanceador de carga de rede de passagem externo Grupos de instâncias e NEGs com suporte

--port: especifica uma porta TCP por número, de 1 a 65535.

A flag --use-serving-port é ignorada para uma verificação de integridade associada a um balanceador de carga de rede de passagem interna porque os serviços de back-end para esse balanceador de carga não se inscrevem em nenhuma porta nomeada. Isso ocorre porque eles são balanceadores de carga de passagem que entregam pacotes diretamente para back-ends, em vez de criar novas conexões do balanceador de carga para o back-end.

Pools de destino As verificações de integridade legadas só são compatíveis com a especificação do número da porta (--port).
Balanceador de carga de rede de passagem interna Grupos de instâncias e NEGs com suporte

--port: especifica uma porta TCP por número, de 1 a 65535.

A flag --use-serving-port é ignorada para uma verificação de integridade associada a um balanceador de carga de rede de passagem interna porque os serviços de back-end para esse balanceador de carga não se inscrevem em nenhuma porta nomeada. Isso ocorre porque eles são balanceadores de carga de passagem que entregam pacotes diretamente para back-ends, em vez de criar novas conexões do balanceador de carga para o back-end.

Balanceador de carga de aplicativo externo global

Balanceador de carga de aplicativo clássico

Balanceador de carga de aplicativo externo regional

Balanceador de carga de aplicativo interno entre regiões

Balanceador de carga de aplicativo interno regional

Balanceador de carga de rede de proxy externo global

Balanceador de carga de rede de proxy clássico

Balanceador de carga de rede de proxy externo regional

Balanceador de carga de rede de proxy interno entre regiões

Balanceador de carga de rede de proxy interno regional

Cloud Service Mesh
NEGs compatíveis
  • --port: especifica uma porta TCP por número, de 1 a 65535.
  • --use-serving-port: use a porta de cada endpoint no grupo de endpoints da rede.
Grupos de instâncias
  • --port: especifica uma porta TCP por número, de 1 a 65535.
  • --use-serving-port: use a mesma porta nomeada do grupo de instâncias que o serviço de back-end assina.

Se você omitir a especificação da porta ao criar a verificação de integridade, o Google Cloud usará os seguintes padrões:

  • Se o protocolo da verificação de integridade for TCP ou HTTP, ele usará --port=80.
  • Se o protocolo da verificação de integridade for SSL, HTTPS ou HTTP2, ele usará --port=443.
  • Se o protocolo da verificação de integridade for GRPC, não haverá padrão implícito. Inclua a especificação da porta.

Sinalizações adicionais para verificações de integridade HTTP, HTTPS e HTTP/2

Além das sinalizações comuns e da especificação de porta, é possível usar estas sinalizações opcionais para verificações de integridade HTTP, HTTPS e HTTP/2. No exemplo abaixo, é criada uma verificação de integridade HTTP chamada hc-http-port-80, que usa a porta 80 com critérios padrão de intervalo, tempo limite e limite de integridade.

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: pode ser http (HTTP/1.1 sem TLS), https (HTTP/1.1 com TLS) ou http2 (HTTP/2 com TLS).
  • COMMON_FLAGS: define as sinalizações comuns. Consulte Procedimento de criação.
  • PORT_SPECIFICATION: define a especificação da porta usando uma das Sinalizações de especificação de porta.
  • HOST permite fornecer um cabeçalho HTTP Host. Em caso de omissão, o endereço IP da regra de encaminhamento do balanceador de carga será usado.
  • PROXY_HEADER precisa ser NONE ou PROXY_V1. Se omitido, o Google Cloud usará NONE. O valor de PROXY_V1 acrescenta o cabeçalho PROXY UNKNOWN\r\n.
  • REQUEST_PATH especifica o caminho do URL que o Google Cloud usará para enviar solicitações de verificação de integridade. Se omitido, a solicitação de verificação de integridade será enviada para /.
  • RESPONSE define uma resposta opcional esperada. As strings de resposta seguirão estas regras:
    • A string de resposta contém letras, números e espaços ASCII.
    • A string de resposta pode ter até 1.024 caracteres.
    • Não há compatibilidade com correspondência de caracteres curinga.
    • A verificação baseada em conteúdo não é compatível com inversão. Por exemplo, não são aceitos operadores como ! no HAProxy.

Se o Google Cloud encontrar a string de resposta esperada em qualquer parte dos primeiros 1.024 bytes do corpo da resposta recebida e se o status HTTP for 200 (OK), a sondagem será considerada bem-sucedida.

As sinalizações --request-path e --response modificam os critérios de sucesso da sondagem de verificação de integridade.

Sinalizações adicionais para verificações de integridade SSL e TCP

Além das sinalizações comuns e da especificação de porta, é possível usar estas sinalizações opcionais para verificações de integridade de SSL e TCP. No exemplo abaixo, é criada uma verificação de integridade TCP chamada hc-tcp-3268, que usa a porta 3268 com critérios de intervalo padrão, tempo limite e limite de integridade.

gcloud compute health-checks create tcp hc-tcp-3268 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --proxy-header=PROXY_HEADER \
    --request=REQUEST_STRING \
    --response=RESPONSE_STRING
  • O protocolo pode ser tcp (como no exemplo) ou ssl.
  • COMMON_FLAGS: define as sinalizações comuns. Consulte Procedimento de criação.
  • PORT_SPECIFICATION: define a especificação da porta usando uma das Sinalizações de especificação de porta.
  • PROXY_HEADER precisa ser NONE ou PROXY_V1. Se omitido, o Google Cloud usará NONE. O valor de PROXY_V1 acrescenta o cabeçalho PROXY UNKNOWN\r\n.
  • REQUEST_STRING: será possível fornecer uma string de até 1.024 caracteres ASCII para enviar depois que a sessão TCP ou SSL tiver sido estabelecida.
  • RESPONSE_STRING: é possível fornecer uma string com até 1.024 caracteres ASCII para a resposta esperada.

As sinalizações --request e --response modificam os critérios de sucesso da sondagem de verificação de integridade. Se você usar a sinalização --response sozinha ou com a sinalização --request, a resposta retornada precisará coincidir exatamente com a string de resposta esperada.

Sinalização adicional para verificações de integridade do gRPC

O servidor gRPC de back-end precisa implementar o serviço de integridade do gRPC, conforme descrito no protocolo de verificação de integridade do gRPC. O Google Cloud envia uma mensagem HealthCheckRequest para os back-ends chamando o método Check do serviço de integridade no back-end. O parâmetro de serviço na solicitação é definido como uma string vazia, a menos que um nome de serviço gRPC seja especificado.

Uma verificação de integridade do gRPC pode verificar o status de um serviço do gRPC. É possível incluir uma string de até 1.024 caracteres ASCII, que é o nome de um determinado serviço gRPC em execução em uma VM de back-end ou NEG. Para fazer isso, use a seguinte sinalização opcional para verificações de integridade do gRPC:

--grpc-service-name=GRPC_SERVICE_NAME

Por exemplo, você pode ter os seguintes serviços e status que o servidor de back-end registra com o serviço gRPC de back-end.

  • MyPackage.ServiceA com o status de veiculação SERVING
  • MyPackage.ServiceB com o status de veiculação NOT_SERVING
  • Nome de serviço vazio com o status de veiculação NOT_SERVING

Se você criar uma verificação de integridade em MyPackage.ServiceA, da seguinte maneira, a sondagem de verificação de integridade retornará HEALTHY, porque o status do serviço é SERVING.

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

Se você criar uma verificação de integridade em MyPackage.ServiceB, a sondagem de verificação de integridade retornará UNHEALTHY porque o status do serviço é NOT_SERVING.

Se você criar uma verificação de integridade em MyPackage.ServiceC, que não está registrada com o serviço gRPC Health, a sondagem de verificação de integridade retornará o status gRPC NOT_FOUND, que é equivalente a UNHEALTHY.

Se você criar uma verificação de integridade para o nome de serviço vazio, a verificação de integridade retornará o status UNHEALTHY, porque o nome de serviço vazio está registrado com o status NOT_SERVING.

Verificações de integridade legadas

Nesta seção, descrevemos como criar, modificar e listar verificações de integridade HTTP e HTTPS legadas. Não é possível converter uma verificação de integridade legada em uma verificação de integridade nem vice-versa.

Para saber quais tipos de balanceadores de carga oferecem suporte a verificações de integridade legadas, consulte o guia do balanceador de carga.

Criar verificações de integridade legadas

Console

A página de verificações de integridade do Console do Google Cloud lista e permite a edição de ambas as verificações de integridade e verificações de integridade legadas. No entanto, não é possível create uma nova verificação de integridade legada na página de verificações de integridade do Console do Google Cloud.

É possível criar uma verificação de integridade legada no Console do Google Cloud apenas ao criar um balanceador de carga de rede com base em pool de destino. Para criar a verificação de integridade legada sozinha, use as instruções de gcloud ou de API desta seção.

gcloud

Para criar uma verificação de integridade legada, use o 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

Substitua:

  • LEGACY_CHECK_TYPE é http-health-checks para uma verificação de integridade HTTP legada ou https-health-checks para uma verificação de integridade HTTPS legada. Se você estiver criando a verificação de integridade legada para um balanceador de carga de rede de destino baseado no pool, será preciso usar http-health-checks.
  • NAME é o nome da verificação de integridade legada. Dentro de um determinado projeto, cada verificação de integridade legada precisa ter um nome exclusivo;
  • DESCRIPTION é uma descrição opcional;
  • CHECK_INTERVAL define o período entre o início de uma sondagem e o início da próxima. As unidades são informadas em segundos. Se omitido, o Google Cloud usará um valor de 5s (cinco segundos).
  • TIMEOUT é o tempo que o Google Cloud aguardará pela resposta de uma sondagem. O valor de TIMEOUT precisa ser menor ou igual ao valor de CHECK_INTERVAL. As unidades são informadas em segundos. Se omitido, o Google Cloud usará um valor de 5s (cinco segundos).
  • HEALTHY_THRESHOLD e UNHEALTHY_THRESHOLD especificam o número sequencial de sondagens que precisam ser bem-sucedidas ou não para que a instância VM seja considerada íntegra ou não. Se omitidos, o Google Cloud usará um limite padrão de 2.
  • HOST permite fornecer um cabeçalho HTTP do host. Em caso de omissão, o endereço IP da regra de encaminhamento do balanceador de carga será usado.
  • PORT permite fornecer um número de porta. Se omitido, o Google Cloud usará 80.
  • REQUEST_PATH especifica o caminho do URL que o Google Cloud usará para enviar solicitações de verificação de integridade. Se omitido, a solicitação de verificação de integridade será enviada para /.

API

Terraform

Modificar verificações de integridade legadas

Console

  1. Acesse a página "Verificações de integridade" no Console do Google Cloud.
    Acessar a página "Verificações de integridade"
  2. Clique em uma verificação de integridade para ver os detalhes.
  3. Clique em Editar e faça as alterações. Depois, clique em Salvar.

gcloud

  • Para modificar uma verificação de integridade HTTP legada, use o comando compute http-health-checks update, substituindo NAME pelo nome. Ao modificar uma verificação de integridade legada com gcloud, as configurações predefinidas para as sinalizações omitidas serão preservadas. As OTHER_OPTIONS são as opções descritas em como criar uma verificação de integridade legada.

    gcloud compute http-health-checks update NAME \
      OTHER_OPTIONS
    
  • Para modificar uma verificação de integridade HTTPS legada, use o comando compute https-health-checks update, substituindo NAME pelo nome. Ao modificar uma verificação de integridade legada com gcloud, as configurações predefinidas para as sinalizações omitidas serão preservadas. As OTHER_OPTIONS são as opções descritas em como criar uma verificação de integridade legada.

    gcloud compute https-health-checks update NAME \
      OTHER_OPTIONS
    

API

Com exceção do nome e do tipo de uma verificação de integridade legada, é possível modificar qualquer sinalização usada para a criação. As chamadas de API patch preservam as pré-configurações que não estão definidas explicitamente na solicitação de patch.

Listar verificações de integridade legadas

Console

  1. Acesse a página "Verificações de integridade" no Console do Google Cloud.
    Acessar a página "Verificações de integridade"
  2. Clique em uma verificação de integridade legada para ver os detalhes.

gcloud

  1. Para listar as verificações de integridade HTTP legadas, use o comando compute http-health-checks list:

    gcloud compute http-health-checks list
    

    Para listar as verificações de integridade HTTPS legadas, use o comando compute https-health-checks list:

    gcloud compute https-health-checks list
    
  2. Para descrever uma verificação de integridade HTTP legada, use o comando compute http-health-checks describe, substituindo NAME pelo nome.

    gcloud compute http-health-checks describe NAME
    

    Para descrever uma verificação de integridade HTTPS legada, use o comando compute https-health-checks describe, substituindo NAME pelo nome.

    gcloud compute https-health-checks describe NAME
    

API

  1. Para listar verificações de integridade legadas:

  2. Para descrever uma verificação de integridade legada:

Criar as regras de firewall necessárias

É preciso criar regras de firewall de entrada aplicáveis a todas as VMs com balanceamento de carga para permitir o tráfego de intervalos de IP de sondagem de verificação de integridade. No exemplo a seguir, criamos uma regra de firewall aplicável às instâncias de VM identificadas por uma tag de destino específica.

Este exemplo permite todo o tráfego TCP dos sistemas de verificação de integridade do Google Cloud para suas instâncias de VM. O tráfego TCP inclui tráfego SSL, HTTP, HTTPS e HTTP/2. Se preferir, é possível especificar portas com o protocolo TCP. No entanto, se especificar portas, suas regras de firewall poderão se tornar específicas para uma determinada verificação de integridade. Se você usar tcp:80 como protocolo e porta, será permitido o tráfego TCP na porta 80. Desse modo, o Google Cloud poderá entrar em contato com suas VMs por meio do HTTP na porta 80, mas não por meio do HTTPS na porta 443.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.
    Acesse as políticas de firewall
  2. Clique em Criar regra de firewall.
  3. Na página Criar uma regra de firewall, forneça estas informações:
    • Nome: informe um nome para a regra. Neste exemplo, use fw-allow-health-checks.
    • Rede: escolha uma rede VPC.
    • Prioridade: informe um número para a prioridade. Números mais baixos têm prioridades mais altas. Certifique-se de que a regra de firewall tenha uma prioridade mais alta que outras regras que podem negar o tráfego de entrada.
    • Direção do tráfego: escolha entrada.
    • Ação se houver correspondência: escolha permitir.
    • Destinos: escolha Tags de destino especificadas e insira tags no campo Tags de destino. Neste exemplo, use allow-health-checks.
    • Filtro de origem: escolha Intervalos de IP.
    • Intervalos de IP de origem: insira o intervalo de IP de origem dependendo dos tipos de balanceador de carga, de tráfego e de verificação de integridade. Consulte Intervalos de IP de sondagem e regras de firewall.
    • Portas e protocolos permitidos: use tcp e a porta configurada na verificação de integridade. TCP é o protocolo de base para todos os protocolos de verificação de integridade.
    • Clique em Criar.
  4. Em cada instância com balanceamento de carga, adicione a tag de rede para que essa nova regra de firewall de entrada aplique-se a ela. No exemplo, allow-health-checks é usado como tag de rede.

gcloud

  1. Use o comando gcloud a seguir para criar uma regra de firewall chamada fw-allow-health-checks que permite conexões TCP de entrada, dos sistemas de verificação de integridade do Google Cloud, para instâncias na sua rede VPC com a terminação allow-health-checks. Com base no tipo do balanceador de carga, um conjunto diferente de intervalos de IP de sondagem e regras de firewall é compatível com o tráfego IPv6 para os back-ends.

    Substitua NETWORK_NAME pelo nome da rede VPC e substitua PORT pelas portas usadas pelo 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

    O valor de SOURCE_IP_RANGE depende do tipo de balanceador de carga, de tráfego e de verificação de integridade. Consulte Intervalos de IP de sondagem e regras de firewall.

  2. Em cada instância com balanceamento de carga, adicione a tag de rede para que essa nova regra de firewall de entrada aplique-se a ela. No exemplo, allow-health-checks é usado como tag de rede.

Para mais detalhes, consulte a documentação das regras de firewall do gcloud e a documentação da API.

Documentação relacionada:

  • Para mais informações sobre como especificar os destinos das regras de firewall, consulte esta explicação nas páginas Visão geral das regras de firewall e Como configurar tags de rede.
  • Para mais informações sobre todas as regras de firewall exigidas pelos balanceadores de carga, consulte Regras de firewall.

Associar verificações de integridade a balanceadores de carga

Caso ainda não tenha feito isso, leia a Visão geral das verificações de integridade: selecione uma verificação de integridade.

Para associar uma verificação de integridade a um novo balanceador de carga, consulte o guia de configuração do respectivo balanceador de carga. Nesta seção, descrevemos como associar uma verificação de integridade ao serviço de back-end de um balanceador de carga atual.

Nesta seção, presume-se que você já:

Console

Para associar uma verificação de integridade a um balanceador de carga existente:

  1. Acesse a página Balanceamento de carga no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique em um balanceador de carga para ver os detalhes.
  3. Clique em Editar e, em seguida, em Configuração de back-end.
  4. Escolha uma verificação de integridade no menu Verificação de integridade.
  5. Clique em Atualizar.

gcloud

Para associar uma verificação de integridade a um serviço de back-end, siga estas etapas:

  1. Identifique o nome e o escopo do serviço de back-end. Os balanceadores de carga de rede de passagem e de proxy têm apenas um serviço de back-end por balanceador. Os balanceadores de carga de aplicativo têm um ou mais serviços de back-end associados a um único mapa de URLs.

    • Para listar serviços de back-end para balanceadores de carga de rede de passagem interna, execute o comando a seguir.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL"
      
    • Para listar serviços de back-end para balanceadores de carga de rede de passagem externos, execute o comando a seguir.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL"
      
    • Para listar serviços de back-end de balanceadores de carga de rede de proxy externo global, execute o comando a seguir.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para listar serviços de back-end de balanceadores de carga de rede de proxy clássico, execute o comando a seguir.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=(SSL,TCP)"
      
    • Para listar serviços de back-end de balanceadores de carga de rede de proxy interno entre regiões, execute o comando a seguir.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para listar serviços de back-end de balanceadores de carga de rede de proxy externo regionais, execute o comando a seguir.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para listar serviços de back-end de balanceadores de carga de rede de proxy interno regionais, execute o comando a seguir.

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • Para identificar serviços de back-end para balanceadores de carga de aplicativo externos globais, balanceadores de carga de aplicativo clássicos e balanceadores de carga de aplicativo internos entre regiões, primeiro identifique um mapa de URL e, em seguida, descreva o mapa. Mapas de URL e serviços de back-end para esses balanceadores de carga são sempre globais, seja qual for o nível de serviço de rede. Substitua URL_MAP_NAME pelo nome do mapa de URL. Os serviços de back-end usados pelo balanceador de carga são listados na resposta.

      gcloud compute url-maps list \
          --global
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --global
      
    • Para identificar serviços de back-end para um balanceador de carga de aplicativo externo regional ou um balanceador de carga de aplicativo interno regional, primeiro identifique um mapa de URL e, em seguida, descreva o mapa. Os mapas de URL e os serviços de back-end desses balanceadores de carga são regionais. Substitua REGION_LIST por uma lista separada por vírgulas de regiões do Google Cloud a serem consultadas. Substitua URL_MAP_NAME pelo nome do mapa de URL e REGION pela região. Os serviços de back-end usados pelo balanceador de carga são listados na resposta.

      gcloud compute url-maps list \
          --regions=REGION_LIST
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --region=REGION
      
  2. Identifique uma verificação de integridade. Consulte Como listar verificações de integridade.

  3. Associe uma verificação de integridade ao serviço de back-end por meio do comando compute backend-services update. Cada serviço de back-end precisa referir-se a uma única verificação de integridade. Nos comandos a seguir, substitua BACKEND_SERVICE_NAME pelo nome do serviço de back-end, HEALTH_CHECK_NAME pelo nome da verificação de integridade e, se necessário, REGION pela região do serviço de back-end do Google Cloud, a verificação de integridade ou ambas.

    • Para alterar a verificação de integridade de um balanceador de carga de rede de passagem interna: um serviço de back-end do balanceador de carga de rede de passagem interna é regional. Pode se referir a uma verificação de integridade global ou regional. O exemplo a seguir mostra uma referência de verificação de integridade regional. Se você estiver usando uma verificação de integridade global com o balanceador de carga de rede de passagem interna, use --global-health-checks em vez de --health-checks-region.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Para alterar a verificação de integridade de um balanceador de carga de rede externo com base em serviço de back-end: o serviço de back-end de um balanceador de carga de rede de passagem externa é regional. Pode se referir a uma verificação de integridade regional.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • Para alterar a verificação de integridade de um balanceador de carga de rede de proxy externo global, balanceador de carga de rede de proxy clássico, balanceador de carga de aplicativo externo global, balanceador de carga de aplicativo clássico ou balanceador de carga de aplicativo interno entre regiões: o serviço de back-end e a verificação de integridade são globais para esses balanceadores de carga. Os balanceadores de carga de aplicativo poderão referenciar mais de uma verificação de integridade se referenciarem mais de um serviço de back-end.

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --global \
          --health-checks HEALTH_CHECK_NAME \
          --global-health-checks
      
    • Para alterar a verificação de integridade de um balanceador de carga de aplicativo externo regional, balanceador de carga de rede de proxy externo regional, balanceador de carga de aplicativo interno regional ou balanceador de carga de rede de proxy interno regional: o serviço de back-end e a verificação de integridade são regionais. Alguns balanceadores de carga poderão referenciar mais de uma verificação de integridade se puderem referenciar mais de um serviço de back-end.

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

API

  1. É possível listar serviços de back-end com a chamada de API backendServices.list.

  2. Veja verificações de integridade.

  3. Para associar uma verificação de integridade a um serviço de back-end, use uma das seguintes chamadas de API:

Associar verificações de integridade legadas a balanceadores de carga de rede de passagem externa baseados em pool de destino

Para associar uma verificação de integridade legada a um novo balanceador de carga de rede de passagem externa, consulte Configurar um balanceador de carga de rede de passagem externa com um pool de destino. Nesta seção, descrevemos como associar uma verificação de integridade legada a um balanceador de carga de rede baseado em pool de destino.

Nesta seção, presume-se que você já:

Console

Para associar uma verificação de integridade a um balanceador de carga de rede externo de passagem com base em pool de destino:

  1. Acesse a página Balanceamento de carga no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique em um balanceador de carga para ver os detalhes.
  3. Clique em Editar e, em seguida, em Configuração de back-end.
  4. Escolha uma verificação de integridade legada no menu Verificação de integridade. Somente serão exibidas as verificações legadas qualificadas.
  5. Clique em Atualizar.

gcloud

Para associar uma verificação de integridade a um balanceador de carga de rede externo de passagem com base em pool de destino:

  1. Identifique os pools de destino. Um balanceador de carga de rede de passagem externa tem pelo menos um pool de destino e pode ter um pool de backup secundário.

    gcloud compute target-pools list
    
  2. Identifique uma verificação de integridade legada usando o protocolo HTTP. Se necessário, veja as verificações de integridade legadas.

  3. Associe a verificação de integridade legada ao pool de destino. Nos seguintes comandos, substitua TARGET_POOL_NAME pelo nome do pool de segmentação, REGION por sua região e LEGACY_CHECK_NAME pelo nome da verificação de integridade legada. A verificação de integridade legada usará o protocolo HTTP.

    • Para remover uma verificação de integridade de HTTP legada de um pool de destino:

      gcloud compute target-pools remove-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      
    • Para adicionar uma verificação de integridade de HTTP legada a um pool de destino:

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

API

  1. É possível listar pools de segmentação com a chamada de API targetPools.list.

  2. Veja as verificações de integridade legadas e identifique uma verificação de integridade de HTTP legada.

  3. Para associar uma verificação de integridade HTTP legada a um pool de segmentação, use a chamada de API targetPools.addHealthCheck.

Verificar o status da verificação de integridade

Depois de associar uma verificação de integridade a um serviço de back-end ou a um pool de destino, é possível ver o estado instantâneo da verificação de integridade dos back-ends do balanceador de carga.

Console

  1. Acesse a página de resumo do balanceamento de carga.
    Acessar a página "Balanceamento de carga"
  2. Clique no nome de um balanceador de carga.
  3. Em Back-end, inspecione a coluna Integridade. O status de integridade é relatado para cada grupo de instâncias de back-end ou grupo de endpoints da rede.

gcloud

  • Em todos os balanceadores de carga, exceto balanceadores de carga de rede de passagem externa baseados em pool de destino, identifique o nome e o escopo (global ou regional) do serviço de back-end. Para uma lista completa de balanceadores de carga e escopos, consulte Serviços de back-end.

    Se necessário, use o comando compute backend-services get-health, substituindo NAME pelo nome do serviço de back-end e REGION pela região.

    • Para ver o estado de integridade instantâneo de um serviço de back-end global:

      gcloud compute backend-services get-health GLOBAL_BACKEND_SERVICE_NAME \
          --global
      
    • Para ver o estado de integridade instantâneo de um serviço de back-end regional:

      gcloud compute backend-services get-health REGIONAL_BACKEND_SERVICE_NAME \
          --region=REGION
      
  • Para balanceadores de carga de rede baseados em pool de destino, identifique o nome e a região do pool de destino do balanceador de carga e use o comando compute target-pools get-health, substituindo NAME pelo nome do pool de destino e REGION pela região.

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

API

  • Em todos os balanceadores de carga, exceto balanceadores de carga de rede de passagem externa baseados em pool de destino, identifique o nome e o escopo (global ou regional) do serviço de back-end. Para uma lista completa de balanceadores de carga e escopos, consulte Serviços de back-end.

  • Para balanceadores de carga de rede de passagem externa baseados em pool de destino, use targetPools.getHealth