Como criar 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ê aprenderá a criar e usar verificações de integridade para balanceadores de carga e o Traffic Director.

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

Categorias, protocolos e portas da verificação de integridade

O Google Cloud organiza as verificações de integridade por categoria e protocolo.

Há duas categorias de verificação de integridade: verificações de integridade e verificações de integridade legadas. Cada categoria é compatível com um conjunto diferente de protocolos e um meio para especificar a porta usada para a verificação de integridade.

O Traffic Director e a maioria dos balanceadores de carga usam verificações de integridade não legadas, mas o balanceamento de carga de rede exige que você use verificações de integridade legadas. Consulte Como selecionar uma verificação de integridade na página Visão geral das verificações de integridade para determinar a categoria, o protocolo e o método de especificação de porta apropriados.

O protocolo selecionado para a verificação de integridade não precisa corresponder ao protocolo usado pelo balanceador de carga e, em alguns casos, isso não é nem mesmo possível. Para mais informações, consulte Protocolos e balanceadores de carga.

O termo "verificação de integridade" não se refere a verificações de integridade legadas. As verificações de integridade legadas são explicitamente chamadas dessa forma neste documento.

Como 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 estas chamadas de API:

Como criar 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 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 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. Para criar uma verificação de integridade, use o Console do Cloud, a ferramenta de linha de comando gcloud 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: se quiser, informe uma descrição.
    • 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 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: todos os balanceadores de carga, exceto balanceadores de carga HTTP(S) internos usam verificações de integridade globais (--global). Os balanceadores de carga HTTP(S) internos usam verificações de integridade regionais em que a região 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 (cinco segundos);
  • TIMEOUT é o tempo que o Google Cloud aguarda uma resposta a 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.
  • 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 Sinalizações adicionais para verificações de integridade HTTP, HTTPS e HTTP/2 , Sinalizações adicionais para verificações de integridade de SSL e TCP ou Sinalização adicional para verificações de integridade do gRPC para criar um anexo da VLAN de monitoramento.

API

Como 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. Veja as instruções em 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 sinalizações comuns, sinalizações de especificação de porta e sinalizações opcionais. 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 sinalizações comuns, sinalizações de especificação de porta e sinalizações opcionais com estas chamadas de API. Use chamadas de API patch para preservar pré-configurações que não estejam explicitamente definidas na solicitação.

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 ferramenta de linha de comando gcloud 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 refere-se a grupos de instâncias não gerenciadas, gerenciadas por zona ou gerenciadas por região.

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
Balanceamento de carga TCP/UDP interno Grupos de instâncias --port: especifique uma porta TCP por número, de 1 a 65535
Não é possível usar a sinalização --use-serving-port de uma verificação de integridade associada a um balanceador de carga TCP/UDP interno porque os serviços de back-end para balanceadores de carga TCP/UDP internos não têm uma especificação de porta.
Balanceamento de carga HTTP(S) interno
Balanceamento de carga de proxy TCP
Balanceamento de carga de proxy SSL
Balanceamento de carga HTTP(S) externo
Traffic Director
NEGs por zona --port: especifique uma porta TCP por número, de 1 a 65535
--use-serving-port: use a porta de cada endpoint no grupo de endpoints de rede.
Grupos de instâncias --port: especifique uma porta TCP por número, de 1 a 65535
--use-serving-port: use o mesmo grupo de instâncias chamado porta que o serviço de back-end assina.

Se você omitir a especificação da porta, 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 listar, criar e modificar verificações de integridade HTTP e HTTPS legadas. Observe que um balanceador de carga de rede só pode usar uma verificação de integridade HTTP legada, não uma verificação de integridade HTTPS legada.

Se a resposta recebida pela sondagem de verificação de integridade legada for HTTP 200 OK, a sondagem será considerada bem-sucedida. Todos os outros códigos de resposta HTTP, incluindo um redirecionamento (301, 302), são considerados não íntegros.

Como 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:

Como criar verificações de integridade legadas

Console

A página de verificações de integridade do Console do 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 criar uma nova verificação de integridade legada na página de verificações de integridade do Console do Cloud.

Para criar uma verificação de integridade legada, use a página do balanceador de carga de rede do Console do Cloud ou 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, use 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-lhe 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

Como 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.

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. Os exemplos a seguir criam regras de firewall que são aplicáveis às instâncias de VM por tag de destino. 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.

Todos os exemplos permitem a entrada de todo o tráfego TCP dos sistemas de verificação de integridade do Google Cloud nas 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.

Regras de firewall para verificações de integridade

O próximo exemplo cria uma regra de firewall de entrada para os seguintes balanceadores de carga:

  • Balanceamento de carga TCP/UDP interno (verificações de integridade)
  • Balanceamento de carga HTTP(S) interno (verificações de integridade)
  • Balanceamento de carga de proxy TCP (verificações de integridade)
  • Balanceamento de carga de proxy SSL (verificações de integridade)
  • Balanceamento de carga HTTP(S) (verificações de integridade e verificações de integridade legadas)

Para esses balanceadores de carga, os intervalos de IP de origem das verificações de integridade, incluindo as verificações legadas, se usadas para balanceamento de carga HTTP(S), são:

  • 35.191.0.0/16
  • 130.211.0.0/22

Somente para balanceamento de carga HTTP(S) interno, o intervalo de IP de origem será todos os endereços IP na sub-rede somente proxy.

Se precisar criar regras para o balanceamento, consulte a próxima seção.

Console

  1. Acesse a página "Firewall" no Console do Google Cloud.
    Acessar a página "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 na caixa de texto Tags de destino. Neste exemplo, use allow-health-checks.
    • Filtro de origem: escolha intervalos de IP.
    • Intervalos de IP de origem: 35.191.0.0/16,130.211.0.0/22.
    • Portas e protocolos permitidos: use tcp. O TCP é o protocolo subjacente a 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. Essa regra 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 tag allow-health-checks. Substitua NETWORK_NAME pelo nome da sua rede VPC.

    gcloud compute firewall-rules create fw-allow-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=35.191.0.0/16,130.211.0.0/22 \
        --target-tags=allow-health-checks \
        --rules=tcp
  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.

Regras para balanceamento de carga de rede

Neste exemplo, criamos uma regra de firewall de entrada para o balanceamento de carga de rede, que exige uma verificação de integridade legada. Os intervalos de IP de origem das verificações de integridade legadas para o balanceamento de carga de rede são:

  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22

Console

  1. Acesse a página "Firewall" no Console do Google Cloud.
    Acessar a página "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-network-lb-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 na caixa de texto Tags de destino. Neste exemplo, use allow-network-lb-health-checks.
    • Filtro de origem: escolha intervalos de IP.
    • Intervalos de IP de origem: 35.191.0.0/16, 209.85.152.0/22, 209.85.204.0/22.
    • Portas e protocolos permitidos: use tcp. O TCP é o protocolo subjacente para HTTP e HTTPS.
    • 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-network-lb-health-checks é usado como tag de rede.

gcloud

  1. Use o comando gcloud a seguir para criar uma regra de firewall chamada fw-allow-network-lb-health-checks. Essa regra 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 tag allow-network-lb-health-checks. Substitua NETWORK_NAME pelo nome da sua rede VPC.

    gcloud compute firewall-rules create fw-allow-network-lb-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=35.191.0.0/16,209.85.152.0/22,209.85.204.0/22 \
        --target-tags=allow-network-lb-health-checks \
        --rules=tcp
  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-network-lb-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.

Como associar verificações de integridade a balanceadores de carga e ao Traffic Director

Esta seção descreve determinadas recomendações de verificação de integridade e os requisitos que precisam ser atendidos antes de associar uma verificação de integridade a um balanceador de carga ou ao Traffic Director.

Como fazer a correspondência com o protocolo

É melhor usar uma verificação de integridade (ou verificação de integridade legada) que tenha um protocolo que corresponda ao protocolo usado pelo serviço de back-end ou pelo pool de segmentação do balanceador de carga. No entanto, os protocolos de verificação de integridade e os do balanceador de carga não precisam ser os mesmos. Por exemplo:

  • Para o balanceamento de carga TCP/UDP interno, somente é possível usar TCP ou UDP para o protocolo do serviço de back-end. Se você processa o tráfego HTTP de VMs por trás de um balanceador de carga TCP/UDP interno, convém executar uma verificação de integridade usando o protocolo HTTP.

  • Um balanceador de carga de rede precisa usar uma verificação de integridade HTTP legada. Ele não pode usar uma verificação de integridade HTTPS legada ou qualquer verificação de integridade moderna. Se usar um balanceador de carga de rede para equilibrar o tráfego TCP, será necessário executar um serviço HTTP nas VMs que estão sendo balanceadas para que possam responder a sondagens de verificação de integridade.

  • Para serviços de back-end que usam o protocolo gRPC, use apenas as verificações de integridade gRPC ou TCP. Não use verificações de integridade HTTP(S) ou HTTP/2.

Verificações de integridade para serviços de back-end

Nesta seção, você verá como associar uma verificação de integridade a um serviço de back-end para estes tipos de balanceadores de carga:

  • Balanceamento de carga TCP/UDP interno
  • Balanceamento de carga HTTP(S) interno
  • Balanceamento de carga de proxy TCP
  • Balanceamento de carga de proxy SSL
  • Balanceamento de carga HTTP(S)

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

Para associar uma verificação de integridade a um novo balanceador de carga TCP/UDP interno, balanceador de carga de proxy TCP, balanceador de carga de proxy SSL ou balanceador de carga HTTP(S) externo, consulte o guia de configuração do respectivo balanceador de carga.

Console

Para associar uma verificação de integridade a um balanceador de carga TCP/UDP interno, balanceador de carga de proxy TCP, balanceador de carga de proxy SSL ou balanceador de carga HTTP(S) externo:

  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. O balanceador de carga TCP/UDP interno e os balanceadores de carga de proxy TCP e de proxy SSL têm apenas um back-end por balanceador. Os balanceadores de carga HTTP(S) externos e internos têm um ou mais serviços de back-end associados a um único mapa de URLs.

    • Se quiser listar serviços de back-end para balanceadores de carga TCP/UDP internos, execute o comando a seguir, substituindo REGION_LIST por uma lista delimitada por vírgulas das regiões do Google Cloud a serem consultadas.

      gcloud compute backend-services list \
          --regions=REGION_LIST \
          --filter="loadBalancingScheme=INTERNAL"
      
    • Caso queira listar serviços de back-end para balanceadores de carga de proxy TCP, execute o comando a seguir. Os serviços de back-end para balanceadores de carga de proxy TCP são sempre globais, seja qual for o nível de serviço de rede.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=TCP"
      
    • Se quiser listar serviços de back-end para balanceadores de carga de proxy SSL, execute o comando a seguir. Os serviços de back-end para balanceadores de carga de proxy SSL são sempre globais, seja qual for o nível de serviço de rede.

      gcloud compute backend-services list \
          --global \
          --filter="loadBalancingScheme=EXTERNAL" \
          --filter="protocol=SSL"
      
    • Se quiser identificar serviços de back-end para um balanceador de carga HTTP(S) externo, primeiro identifique um mapa de URL e, em seguida, descreva o mapa. Mapas de URL e serviços de back-end para balanceadores de carga HTTP(S) externos 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
      
    • Se quiser identificar serviços de back-end para um balanceador de carga HTTP(S) interno, primeiro identifique um mapa de URLs e, em seguida, descreva o mapa. Mapas de URL e serviços de back-end para balanceadores de carga HTTP(S) internos 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 TCP/UDP interno: o serviço de back-end de um balanceador de carga TCP/UDP interno é 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 TCP/UDP interno, 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 em um balanceador de carga de proxy TCP, um balanceador de carga de proxy SSL ou um balanceador de carga HTTP(S) externo: tanto o serviço de back-end quanto a verificação de integridade são globais. Um balanceador de carga HTTP(S) externo poderá referenciar mais de uma verificação de integridade, caso se refira a 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 em um balanceador de carga HTTP(S) interno: o serviço de back-end e a verificação de integridade são regionais. Um balanceador de carga HTTP(S) interno poderá referenciar a mais de uma verificação de integridade caso refira-se a 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:

Verificações de integridade legadas para balanceamento de carga de rede

Nesta seção, você verá como associar uma verificação de integridade legada a um pool de segmentação para o balanceamento de carga de rede. Nesta seção, presume-se que você já:

Para associar uma verificação de integridade legada a um novo balanceador de carga de rede, consulte Como configurar o balanceamento de carga de rede. Associe uma verificação de integridade legada ao pool de segmentação ao criar um novo balanceador de carga de rede.

Console

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

  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 de rede 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 atual:

  1. Identifique os pools de destino. Os balanceadores de carga de rede têm pelo menos um pool de destino e podem 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.

Como 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

  • Para todos os balanceadores de carga, exceto balanceadores de carga de rede, identifique o nome e o escopo do serviço de back-end. Os balanceadores de carga TCP/UDP internos e os balanceadores de carga HTTP(S) internos usam serviços de back-end regionais. Os balanceadores de carga de proxy TCP, balanceadores de carga de proxy SSL e balanceadores de carga HTTP(S) externos usam serviços de back-end globais.

    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 NAME \
          --global \
          --format=get(name, healthStatus)
      
    • Para ver o estado de integridade instantâneo de um serviço de back-end regional:

      gcloud compute backend-services get-health NAME \
          --region=REGION \
          --format=get(name, healthStatus)
      
  • Para balanceadores de carga de rede, 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 respectiva região.

    gcloud compute target-pools get-health NAME \
            --region=REGION \
        --format=get(name, healthStatus)
    

API

  • Para todos os balanceadores de carga, exceto balanceadores de carga de rede, identifique o nome e o escopo do serviço de back-end. Os balanceadores de carga TCP/UDP internos e os balanceadores de carga HTTP(S) internos usam serviços de back-end regionais. Os balanceadores de carga de proxy TCP, balanceadores de carga de proxy SSL e balanceadores de carga HTTP(S) externos usam serviços de back-end globais.

  • Para balanceadores de carga de rede, use targetPools.getHealth