You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS Pod无法ping通外部IP问题排查请求

AWS EKS Pod无法ping通外部IP排查方案

问题背景

在AWS EKS集群的besu命名空间中,创建了如下BusyBox Pod执行ping测试:

apiVersion: v1
kind: Pod
metadata:
  name: ping-pod
  namespace: besu
spec:
  containers:
  - name: busybox
    image: busybox:latest
    command:
      - sh
      - -c
      - "ping -c 5 google.com"
  restartPolicy: Never

Pod执行后日志显示ping请求100%丢包,无响应。

排查步骤

1. 验证Pod DNS解析能力

先确认域名解析是否正常,执行:

kubectl exec -n besu ping-pod -- nslookup google.com

若解析失败,进一步检查:

  • 集群CoreDNS Pod状态:kubectl get pods -n kube-system -l k8s-app=kube-dns
  • CoreDNS配置:kubectl get configmap coredns -n kube-system -o yaml
  • Pod的DNS策略:确认Pod的dnsPolicy字段(未设置则默认ClusterFirst)

2. 检查节点网络连通性

登录Pod所在的EKS节点,直接执行ping google.com:

  • 若节点也无法连通:检查节点VPC安全组、网络ACL的出站规则,确认允许ICMP(ping)和TCP/UDP 53(DNS)流量;同时确认私有子网节点是否配置了正常运行的NAT网关。
  • 若节点能连通,问题聚焦在Pod层面的网络配置。

3. 排查EKS集群CNI插件状态

确认集群使用的CNI插件(如AWS VPC CNI、Calico)运行正常:

  • 查看AWS VPC CNI Pod状态:kubectl get pods -n kube-system -l name=aws-node
  • 查看CNI插件日志,排查网络配置异常
  • 检查Pod路由:kubectl exec -n besu ping-pod -- ip route,确认存在默认路由指向节点或CNI网关

4. 检查命名空间网络策略

查看besu命名空间是否有NetworkPolicy限制出站流量:

kubectl get networkpolicy -n besu

确认策略是否允许Pod访问外部的ICMP和DNS流量。

5. 直接ping公网IP跳过DNS

执行以下命令测试直接ping公网IP(如8.8.8.8):

kubectl run -n besu tmp-ping --image=busybox --rm -it -- ping -c 5 8.8.8.8
  • 若能ping通:问题出在DNS解析环节,回到步骤1深入排查
  • 若仍无法ping通:聚焦于Pod到外部的网络连通性问题

6. 检查VPC基础配置

  • 确认Pod所在子网的路由表是否指向NAT网关(私有子网)或互联网网关(公有子网)
  • 检查NAT网关是否正常运行,弹性IP是否关联
  • 确认VPC的DNS resolution和DNS hostnames功能已启用(AWS控制台VPC详情页查看)

内容的提问来源于stack exchange,提问作者anjy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:43:11