Debug BackendConnectionErrors do serviço Kubernetes Service LoadBalancer sesrvice


8

Recentemente, transferimos parte de nossa infraestrutura de produção para Kubernetes. Muitos pods são expostos por meio de um LoadBalancerserviço na AWS. Isso cria um ELB, registra cada nó no cluster com o ELB e configura uma porta de nó para mapear portas ELB para pods. Nossos aplicativos podem se conectar via balanceador de carga, mas a quantidade de BackendConnectionErrors(conforme relatado pelo cloudwatch) é 5-7x maior que a contagem de solicitações. Não tenho certeza de como depurar isso.

O número de erros de conexão de back-end relatados não se correlaciona com nenhuma métrica de erro da camada de aplicativo. Isso me permite concluir que é algum tipo de problema de infraestrutura que talvez esteja sendo amplificado por novas tentativas. No entanto, eu não sei como depurar esse problema.

Minha hipótese é uma ou ambas:

  • Alguma configuração estranha da AWS que está faltando no ELB para gerenciamento de conexões
  • Os nós no cluster têm alguma configuração sysctl ou outra configuração de rede que está bloqueando a quantidade de conexões provenientes do ELB
  • Alguma parte intermediária da infraestrutura de rede interferindo nas conexões.

Minha pergunta é: como posso depurar / rastrear algumas métricas relacionadas a TCP / rede nas instâncias do cluster?

Mais informações sobre as métricas do CloudWatch em questão.


Você tem certeza de que todos os seus nós estão em funcionamento? se alguém está falhando em K8S nivelar o ELB não pode dizer isso e ainda irá enviá-lo pede ...
Tensibai

Respostas:


5

Minha solução para esse problema foi refazer meus serviços. A instalação na minha pergunta tinha um K8s Servicecom ~ 10 portas. Eu reformulei a instalação para usar uma porta por Service. O problema foi embora. Eu não sei porque. Isso me faz suspeitar de algo nos próprios nós ou de alguma complexidade no roteamento de conexões para a porta correta do nó. Sou cauteloso ao expor muitas portas novamente por causa disso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.