Resolva problemas de balanceamento de carga no GKE

Esta página mostra-lhe como resolver problemas relacionados com o equilíbrio de carga em clusters do Google Kubernetes Engine (GKE) através de recursos de serviço, entrada ou gateway.

A entrada externa produz erros HTTP 502

Use as seguintes orientações para resolver problemas de erros HTTP 502 com recursos de entrada externos:

  1. Ative os registos para cada serviço de back-end associado a cada serviço do GKE que é referenciado pelo Ingress.
  2. Use os detalhes do estado para identificar as causas das respostas HTTP 502. Os detalhes do estado que indicam que a resposta HTTP 502 teve origem no back-end requerem a resolução de problemas nos pods de publicação, e não no equilibrador de carga.

Grupos de instâncias não geridos

Pode ter erros HTTP 502 com recursos de entrada externos se a entrada externa usar back-ends de grupos de instâncias não geridos. Este problema ocorre quando todas as seguintes condições são cumpridas:

  • O cluster tem um número total elevado de nós entre todos os conjuntos de nós.
  • Os pods de publicação de um ou mais serviços referenciados pelo Ingress estão localizados apenas em alguns nós.
  • Os serviços referenciados pelo Ingress usam externalTrafficPolicy: Local.

Para determinar se o seu Ingress externo usa back-ends de grupos de instâncias não geridos, faça o seguinte:

  1. Aceda à página Ingress na Trusted Cloud consola.

    Aceda ao Ingress

  2. Clique no nome do seu Ingress externo.

  3. Clique no nome do balanceador de carga. É apresentada a página Detalhes do equilíbrio de carga.

  4. Consulte a tabela na secção Serviços de back-end para determinar se o seu Ingress externo usa NEGs ou grupos de instâncias.

Para resolver este problema, use uma das seguintes soluções:

  • Use um cluster nativo de VPC.
  • Use externalTrafficPolicy: Cluster para cada serviço referenciado pelo Ingress externo. Esta solução faz com que perca o endereço IP do cliente original 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 aos conjuntos de nós que não executam nenhum pod de fornecimento para nenhum serviço referenciado por qualquer entrada externa ou serviço LoadBalancer no seu cluster.

Use registos do balanceador de carga para resolver problemas

Pode usar os registos do balanceador de carga de rede de passagem interna e os registos do balanceador de carga de rede de passagem externa para resolver problemas com balanceadores de carga e correlacionar o tráfego dos balanceadores de carga com os recursos do GKE.

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

  • Nome do cluster
  • Localização do cluster
  • Nome do serviço
  • Espaço de nomes do serviço
  • Nome do agrupamento
  • Espaço de nomes do agrupamento

Use ferramentas de diagnóstico para resolver problemas

A ferramenta de diagnóstico check-gke-ingressinspeciona os recursos de entrada para detetar erros de configuração comuns. Pode usar a ferramenta check-gke-ingress das seguintes formas:

  • Execute a gcpdiag ferramenta de linhas de comandos no seu cluster. Os resultados da entrada são apresentados na secção de verificação de regras.gke/ERR/2023_004
  • Use a ferramenta check-gke-ingress sozinha ou como um plug-in do kubectl seguindo as instruções em check-gke-ingress.