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.