Solucionar problemas do balanceamento de carga de HTTP(S) interno

Neste guia, você verá como resolver problemas de configuração de um balanceador de carga HTTP(S) interno do Google Cloud. Antes de seguir este guia, conheça bem os seguintes tópicos:

Os back-ends têm modos de balanceamento incompatíveis

Ao criar um balanceador de carga, talvez você veja o erro:

Validation failed for instance group INSTANCE_GROUP:

backend services 1 and 2 point to the same instance group
but the backends have incompatible balancing_mode. Values should be the same.

Isso acontece quando você tenta usar o mesmo back-end em dois balanceadores de carga diferentes, e os back-ends não têm modos de balanceamento compatíveis.

Para ver mais informações, consulte os seguintes tópicos:

Tráfego com carga balanceada não tem endereço de origem do cliente original

Este comportamento é esperado. O balanceamento de carga HTTP(S) interno opera como um proxy reverso (gateway) de HTTP(S). Quando um programa cliente abre uma conexão com o endereço IP de uma regra de encaminhamento INTERNAL_MANAGED, a conexão é encerrada em um proxy. O proxy processa as solicitações que chegam por meio dessa conexão. Para cada solicitação, o proxy seleciona um back-end para receber a solicitação com base no mapa de URLs e em outros fatores. Em seguida, o proxy envia a solicitação ao back-end selecionado. Como resultado, do ponto de vista do back-end, a origem de um pacote de entrada é um endereço IP da sub-rede somente proxy da região.

As solicitações são rejeitadas pelo balanceador de carga

Para cada solicitação, o proxy seleciona um back-end para receber a solicitação com base em uma correspondência de caminho no mapa de URL do balanceador de carga. Se o mapa de URL não tiver uma correspondência definida para a solicitação, ele não poderá selecionar um serviço de back-end, retornando o código de resposta HTTP 404 (Não encontrado).

O balanceador de carga não se conecta a back-ends

Os firewalls que protegem seus servidores de back-end precisam ser configurados para permitir tráfego de entrada dos proxies no intervalo de sub-rede somente proxy alocado para a região do balanceador de carga HTTP(S).

Os proxies conectam-se a back-ends usando as definições de conexão especificadas pela configuração de seu serviço de back-end. Se esses valores não corresponderem à configuração dos servidores em execução nos seus back-ends, o proxy não poderá encaminhar solicitações para os back-ends.

As sondagens de verificação de integridade não conseguem alcançar os back-ends

Para confirmar se o tráfego de verificação de integridade atinge as VMs de back-end, ative a geração de registros de verificação de integridade e pesquise entradas de registro bem-sucedidas.

Os clientes não se conectam ao balanceador de carga

Os proxies detectam conexões com o endereço IP e a porta do balanceador de carga configurados na regra de encaminhamento (por exemplo, 10.1.2.3:80) e com o protocolo especificado na regra de encaminhamento (HTTP ou HTTPS). Se seus clientes não se conectarem, verifique se estão usando o endereço, a porta e o protocolo corretos.

Verifique se o firewall não está bloqueando o tráfego entre as instâncias do cliente e o endereço IP com balanceamento de carga.

Verifique se os clientes estão na mesma região que o balanceador de carga. O balanceamento de carga HTTP(S) interno é um produto regional, portanto todos os clientes (e back-ends) precisam estar na mesma região do recurso do balanceador de carga.

Restrição de política organizacional para VPC compartilhada

Se você estiver usando uma VPC compartilhada e não conseguir criar um novo balanceador de carga HTTP(S) interno em uma sub-rede específica, uma política da organização poderá ser a causa. Na política da organização, adicione a sub-rede à lista de sub-redes permitidas ou entre em contato com o administrador da organização. Para ver mais informações, consulte constraints/compute.restrictSharedVpcSubnetworks.

O balanceador de carga não distribui o tráfego de maneira uniforme pelas zonas

É possível observar um desequilíbrio no tráfego do balanceador de carga HTTP(S) interno entre as zonas. Isso pode acontecer especialmente quando há pouca utilização (menos de 10%) da sua capacidade de back-end.

Esse comportamento pode afetar a latência geral porque o tráfego é enviado apenas para alguns servidores em uma zona.

Para uniformizar a distribuição de tráfego entre zonas, faça as alterações de configuração a seguir:

  • Use o modo de balanceamento RATE com uma capacidade de destino baixa de max-rate-per-instance.
  • Use a política de tráfego de back-end LocalityLbPolicy com um algoritmo de balanceamento de carga de LEAST_REQUEST.

Limitações

Se você estiver com problemas para usar o balanceamento de carga HTTP(S) interno com outros recursos de rede do Google Cloud, observe as atuais limitaçõesde compatibilidade.