Oracle Kubernetes Engine(OKE)中Pod无法访问互联网排查求助
OKE快速创建集群Pod无法访问互联网排查求助
集群配置
- 4个工作节点
- 公有子网
- Oracle Linux启动镜像
- Ampere A1 Flex VM实例规格
问题现象
通过OKE快速创建流程搭建托管Kubernetes集群后,按文档及关联互联网网关的路由表配置,Pod应具备互联网访问能力,但实际出站流量经几跳后被阻断,无法正常访问外部网络。
已完成的调试操作
- 启动带curl和traceroute工具的Alpine Pod并进入交互式shell:
kubectl run -it alpine --image antoineleguillou/alpine-curl:latest
- 执行DNS解析检查:
nslookup google.com
输出结果:
Server: 10.96.5.5 Address: 10.96.5.5:53 Non-authoritative answer: Name: google.com Address: 2a00:1450:4007:80e::200e Non-authoritative answer: Name: google.com Address: 216.58.214.174
- 执行traceroute链路追踪:
traceroute google.com
输出结果:
traceroute to google.com (142.250.179.78), 30 hops max, 46 byte packets 1 oke-csd46tj66qq-nfqvrwtdpqq-s5khezb2fnq-0.sub9da357a0c.andrew.oraclevcn.com (10.0.10.106) 0.007 ms 0.006 ms 0.005 ms 2 140.204.198.4 (140.204.198.4) 0.006 ms 140.204.198.7 (140.204.198.7) 0.092 ms 140.204.198.12 (140.204.198.12) 0.068 ms 3 * * *
下一步排查方向
1. 检查子网安全组规则
确认工作节点所在公有子网的安全组是否允许全量出站流量(目标0.0.0.0/0和::/0),至少要放行TCP 80/443、UDP 53(DNS)以及ICMP协议(traceroute依赖)。
2. 验证网络安全列表(NSG)配置
检查子网关联的网络安全列表,确保存在正确的出站规则:
- 允许所有IP协议的流量指向0.0.0.0/0和::/0,或至少放行必要的业务端口。
- 注意NSG为有状态规则,但缺失出站规则会直接阻断流量。
3. 核对路由表默认路由
确认子网绑定的路由表中,存在指向互联网网关(IGW)的默认路由:目标地址为0.0.0.0/0和::/0,下一跳为IGW实例。若缺少该路由,Pod流量无法转发至公网。
4. 测试工作节点本身的连通性
通过OCI控制台或SSH登录任意工作节点,直接执行curl google.com和traceroute google.com:
- 若节点能正常访问公网,问题大概率出在Kubernetes网络插件(如Calico)的SNAT规则配置,需检查Pod的源地址转换是否生效。
- 若节点也无法访问,说明问题出在VCN层面(安全组/NSG/路由表)。
5. 检查Kubernetes SNAT规则
对于OKE托管集群,确认SNAT配置是否正常:
- 登录节点执行
iptables -t nat -L POSTROUTING,查看是否存在针对Pod子网的SNAT转换规则。 - 若使用Calico网络插件,检查其SNAT相关配置是否正确。
6. 确认OCI服务限制
排查账号是否存在出站流量限制,或所在区域是否有特殊网络要求(比如需通过NAT网关而非直接IGW出站,快速创建流程默认应为IGW)。
内容的提问来源于stack exchange,提问作者antoine
相关产品推荐
相关产品推荐

