Recentemente, transferimos parte de nossa infraestrutura de produção para Kubernetes. Muitos pods são expostos por meio de um LoadBalancer
serviç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.