Resolver problemas de balanceamento de carga no GKE

Problemas de balanceamento de carga no Google Kubernetes Engine (GKE) podem causar interrupções no serviço, como erros HTTP 502, ou impedir o acesso aos aplicativos.

Use este documento para saber como resolver erros de 502 do Entrada externo e como usar registros do balanceador de carga e ferramentas de diagnóstico, como check-gke-ingress, para identificar problemas.

Essas informações são importantes para administradores e operadores de plataforma e desenvolvedores de aplicativos que configuram e mantêm serviços com balanceamento de carga no GKE. Para mais informações sobre as funções comuns e exemplos de tarefas que mencionamos no conteúdo do Cloud de Confiance by S3NS , consulte Funções e tarefas comuns do usuário do GKE.

A Entrada externa produz erros HTTP 502

Use as orientações a seguir para solucionar erros HTTP 502 com recursos de Entrada externa:

  1. Ative os registros para cada serviço de back-end associado a cada serviço do GKE referenciado pela Entrada.
  2. Use os detalhes do status para identificar as causas das respostas HTTP 502. Os detalhes do status que indicam a resposta HTTP 502 originada do back-end exigem solução de problemas nos pods de exibição, não no balanceador de carga.

Grupos de instâncias não gerenciadas

É possível que ocorram erros HTTP 502 com os recursos de Entrada externos se sua Entrada externa usar back-ends de grupos de instâncias não gerenciados. Esse problema ocorre quando todas as condições a seguir são atendidas:

  • O cluster tem um grande número total de nós em todos os pools.
  • Os pods de exibição para um ou mais serviços que são referenciados pela Entrada estão localizados em apenas alguns nós.
  • Os serviços referenciados pela Entrada usam externalTrafficPolicy: Local.

Para determinar se a Entrada externa usa back-ends de grupos de instâncias não gerenciadas, faça o seguinte:

  1. Acesse a página Entrada no console do Cloud de Confiance .

    Acessar o Ingress

  2. Clique no nome do Ingress externo.

  3. Clique no nome do balanceador de carga. A página Detalhes do balanceamento de carga é exibida.

  4. Verifique a tabela na seção Serviços de back-end para determinar se a Entrada externa usa NEGs ou grupos de instâncias.

Para resolver esse problema, use um dos métodos a seguir.

  • Use um cluster nativo de VPC.
  • Use externalTrafficPolicy: Cluster para cada Serviço referenciado pelo Ingress externo. Essa solução faz com que você perca o endereço IP original do cliente nas origens do pacote.
  • Use a anotação node.kubernetes.io/exclude-from-external-load-balancers=true: Adicione a anotação aos nós ou pools de nós que não executam qualquer pod de veiculação para qualquer serviço referenciado por qualquer entrada externa ou serviço LoadBalancer no cluster.

Usar registros do balanceador de carga para resolver problemas

É possível usar registros do balanceador de carga de rede de passagem interna e registros do balanceador de carga de rede de passagem externa para solucionar problemas com balanceadores de carga e correlacionar tráfego de balanceadores de carga para recursos do GKE.

Os registros são agregados por conexão e exportados quase em tempo real. Os registros são gerados para cada nó do GKE envolvido no caminho de dados de um serviço LoadBalancer, para o tráfego de entrada e saída. As entradas de registro incluem campos adicionais para recursos do GKE, como:

  • Nome do cluster
  • Local do cluster
  • Nome do serviço
  • Namespace do serviço
  • Nome do pod
  • Namespace do pod

Usar ferramentas de diagnóstico para resolver problemas

A ferramenta de diagnóstico check-gke-ingress inspeciona os recursos do Ingress em busca de erros de configuração comuns. É possível usar a ferramenta check-gke-ingress das seguintes maneiras: