O Pod não tem acesso à internet.
O que é um problema de conectividade de internet em um Pod?
Um problema de conectividade com a Internet em um Pod ocorre quando um Pod está em execução, mas não consegue acessar serviços externos ou a Internet. Isso geralmente é causado por problemas com o plugin CNI, DNS, políticas de rede, regras de firewall ou configuração de NAT.
Dica: se o Pod consegue se comunicar com outros Pods, mas não consegue acessar a internet, o problema geralmente está relacionado ao tráfego de saída, NAT, regras de firewall ou DNS .
Sintomas
- Os pods não podem acessar sites externos ou APIs.
- As solicitações de internet falham ou expiram.
- As consultas de DNS não funcionam.
- O aplicativo não consegue se conectar a serviços externos.
Causas comuns
| Causa | Descrição |
|---|---|
| Falha no Plugin CNI | O plugin de rede (Calico, Cilium, Flannel, etc.) não está funcionando corretamente. |
| Firewall | O tráfego de saída está bloqueado. |
| Problema no Gateway NAT | O roteamento da Internet ou o NAT está configurado incorretamente. |
| Falha no DNS | O pod não consegue resolver nomes de domínio. |
| Política de Rede | O tráfego de saída está bloqueado pelas políticas de rede. |
Como diagnosticar
- Teste a conectividade com a Internet
Execute o seguinte comando dentro do Pod:
kubectl exec -it <pod> -n <namespace> -- curl -I https://google.com
Se a solicitação falhar, o Pod não tem acesso à internet.
- Verifique a resolução de DNS
kubectl exec -it <pod> -n <namespace> -- nslookup google.com
ou
kubectl exec -it <pod> -n <namespace> -- dig google.com
Se a resolução de DNS falhar, verifique o serviço CoreDNS.
- Verificar o status do plug-in CNI
kubectl get pods -n kube-system
Verifique se os Pods do seu plugin CNI (Calico, Cilium, Flannel, etc.) estão em estado de execução.
- Verificar as políticas de rede
kubectl get networkpolicy
Analise as políticas para garantir que o tráfego de saída (egress) seja permitido.
- Verifique o NAT e o firewall.
Confira isso:
- O gateway NAT ou gateway da Internet está configurado corretamente.
- As regras do firewall ou do grupo de segurança permitem tráfego de saída.
Como consertar
- Verifique se o plugin CNI (Calico, Cilium, Flannel) está funcionando corretamente.
- Corrija as regras de saída da NetworkPolicy se o tráfego estiver bloqueado.
- Verifique a rota padrão do nó, a configuração NAT e as regras do firewall.
- Certifique-se de que o CoreDNS esteja em execução e que a resolução de DNS esteja funcionando.
- Reinicie os componentes CNI, se necessário.
- Verifique as regras do firewall ou do grupo de segurança.
Comandos importantes
kubectl exec -it <pod> -n <namespace> -- curl -I https://google.com
kubectl exec -it <pod> -n <namespace> -- nslookup google.com
kubectl get pods -n kube-system
kubectl get networkpolicy
Pontos-chave
- ´curl´ Falha + ´nslookup´ funciona → Provavelmente um problema de rede, NAT ou firewall.
- ´nslookup´Falha → Muito provavelmente um problema de DNS/CoreDNS.
- Os pods do CNI não estão em execução → É provável que a rede dentro do cluster esteja com problemas.
- Políticas de rede negam saída → Os pods não podem acessar serviços externos até que a política seja atualizada.