六、Kubernetes 网络
先知道数据包在哪里,再判断哪一层出了问题。本章以 Calico VXLAN 为一条可验证主线,同时说明其他实现会改变哪些设备、路由和策略执行点。
1、阅读地图
| 专题 | 图号 | 核心问题 |
|---|---|---|
| netns、veth 与路由 | K6-1 | 隔离和连通由谁实现 |
| Pod 网络模型 | K6-2 | Pod、Node、Service 地址有何区别 |
| 同节点与跨节点通信 | K6-3、K6-4 | 每一跳经过哪些设备 |
| VXLAN 与 BGP | K6-5、K6-6 | 封装与路由传播各解决什么 |
| NAT、conntrack 与 Hairpin | K6-7 | 改写和连接状态如何影响回程 |
| NetworkPolicy | K6-8 | 哪些连接能发出、哪些能进入 |
| CNI 与实现选型 | K6-9 | 如何确认实际启用的能力 |
2、从一个 Pod 的边界开始
图 K6-1 复用第一篇的网络隔离图;后续沿着节点出口延伸到隧道、远端和外部服务。
3、实验前提
使用 README 的独立上下文。Linux 命令在 kind 节点中执行,不在 macOS 宿主内核执行。网络实验使用 k8s-lab,策略实验另建 k8s-netpol;抓包和命名空间工具只按需安装到专用实验节点。
真实 BGP、云路由和跨可用区性能需要额外环境;不从 kind 容器之间的成功请求推导生产结论。
4、本章验收
应能用路由和响应证明同节点、跨节点路径;解释内外层地址、MTU 和回程;完成策略“基线全通 → 默认拒绝 → 白名单”的三阶段对照;将 DNS、Service 代理和 Pod 网络故障分开定位。
下一章:七、Ingress 与 Gateway,把外部 HTTP/TLS 入口接到已经理解的 Service 与 Pod 数据路径上。
