Kubernetes 本身不实现 Pod 网络,而是通过 CNI(Container Network Interface) 规范将网络配置委托给插件(如 Calico、Cilium、Flannel)。
一、veth pair 的创建与命名空间迁移
bash
# 创建 veth pair
ip link add veth0 type veth peer name veth1
# 将一端移入容器网络命名空间
ip link set veth1 netns <container-ns>每个 Pod 拥有独立的网络命名空间,插件通过 veth pair 将 Pod 内部网卡与宿主机网桥或路由设备相连,再配合 iptables/eBPF 实现跨节点转发与 NetworkPolicy 隔离。
二、常见故障排查命令
kubectl exec进入 Pod 执行ip addr与ip route- 在宿主机使用
nsenter -t <pid> -n调试命名空间 - 通过
cilium monitor或tcpdump观察数据包路径