8472 是什么
8472 是 Flannel 的 VXLAN 后端使用的默认封装端口:容器网络插件把跨节点的 Pod 流量封装成 UDP 报文,经由本机类似 flannel.1 的虚拟网卡收发。标准 VXLAN 使用 4789,Flannel 早期选择 8472,是为了避开当时内核不支持 4789 的限制。
典型的故障形态
它最常见的故障表现是「同节点 Pod 互通、跨节点 Pod 不通」,绝大多数情况是防火墙没有放行 8472/UDP。排查顺序建议固定为:虚拟网卡是否存在、封装端口是否可达、节点注册是否成功,最后才怀疑控制器状态。
基本信息
| 服务 | Flannel VXLAN 后端 |
|---|---|
| 协议 | UDP 8472,标准 VXLAN 为 4789 |
| 虚拟网卡 | flannel.1 |
| 用途 | K8s Pod 跨节点通信 |
| 安全等级 | 仅节点网段 |
典型使用场景
- 跨节点 Pod 通信排障时确认封装端口是否放行
- 新增节点加入集群前统一网络策略
- 混合云或跨子网部署时确认各节点间 UDP 是否可达
- 从 Flannel 迁移到其他网络插件前评估端口与路由变化
- 安全核查时确认封装端口只对节点网段开放
快速判定
快速判定
ip -d link show flannel.1 # 查看虚拟网卡与封装参数
ss -lunp | grep 8472 # 确认封装端口监听
kubectl get pods -o wide -n kube-system | grep flannel # 各节点组件状态防火墙放行示例
防火墙放行示例
# 仅放行集群节点网段
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.244.0.0/16 port port=8472 protocol=udp accept'
firewall-cmd --reload
# 从一个节点向另一个节点验证可达性
nc -u -z node2 8472常见后端与端口
| 后端类型 | 封装方式 | 端口 |
|---|---|---|
| vxlan | VXLAN 封装 | UDP 8472 |
| host-gw | 直接路由 | 不使用封装端口 |
| wireguard | 加密隧道 | 由后端配置决定 |
把排查顺序固定下来可以少走弯路:先看虚拟网卡是否存在,再看封装端口是否可达,最后看节点注册状态。多数跨节点不通在前两步就能定位,不必一上来就重建网络插件。
封装与路由两种后端的取舍
封装型后端适合节点分布在不同子网的环境,代价是每个报文多一层封装开销;路由型后端性能更好,但要求节点处在同一二层网络或已打通路由。选型时先确认网络拓扑,再决定是否需要为封装端口规划策略放行。
变更注意:调整网络插件后端或端口时,集群内所有节点需要同步生效,滚动变更期间会出现部分节点互通、部分不通的中间状态,最好在业务低峰执行。