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

为什么Kubernetes工作节点上的Egress流量无法正常工作?

首先你配置的allow-all-egress网络策略本身逻辑是正确的,规则匹配所有Pod且允许全部出站流量,问题并不出在该策略本身,可按照以下步骤逐层排查:

1. 确认CNI插件网络策略支持情况

  • 如果你使用的是默认Flannel CNI,其本身不支持NetworkPolicy能力,需要额外部署网络策略控制器(如Calico的策略控制器),但无网络策略控制器的情况下默认集群所有Pod流量全通,因此不会导致公网访问被阻断。

2. 分层排查连通性

先进入异常Pod执行命令验证:

# 先验证IP层连通性,跳过DNS解析
ping 114.114.114.114
  • 如果IP ping不通,跳转第三步排查路由/NAT配置
  • 如果IP能通,执行nslookup baidu.com验证DNS解析:解析失败则检查kube-system命名空间下CoreDNS Pod运行状态,确认CoreDNS配置无异常。

3. 验证工作节点公网连通性

直接登录到对应工作节点执行公网ping测试:

  • 如果节点本身无法访问公网,先修复节点基础网络,检查节点网关配置、公网IP绑定、运营商/云服务商出站规则限制。
  • 如果节点本身可以访问公网,说明是Pod流量出节点时的NAT配置异常。

4. 排查CNI出站NAT配置

Kubernetes Pod默认使用私有网段,公网无法直接路由该网段地址,需要CNI配置出站MASQUERADE(地址伪装)将Pod流量源IP转换为节点IP:

  • Calico CNI:执行kubectl get ippools -o yaml,检查IP池配置中natOutgoing字段是否为true
  • Flannel CNI:检查工作节点上/run/flannel/subnet.env文件中FLANNEL_IPMASQ参数是否为true

5. 排查节点防火墙规则

检查工作节点iptables FORWARD链规则,确认没有规则丢弃Pod网段的出站流量:

iptables -nvL FORWARD

如果FORWARD链默认策略为DROP,需要添加规则允许Pod网段的流量转发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 04:45:03