L1
容器网络
K8s 网络模型与 CNI把 K8s 网络从"魔法"变成可推导的机制。Pod 之间怎么通、Service 的 VIP 是谁在翻译、流量从集群外进来经过哪几跳,全都能画出来。
3 个小组 · 10 节课 · 约 5 小时已完成 0/10
1网络模型与数据平面
3 节 · 95 分钟 · 正文 2/3先看清 K8s 定下的四条约束,再用 ip 命令手搓一个满足它的最小网络,最后看各家 CNI 的取舍。
- 1
K8s 网络模型:四条铁律
原理入门25 分钟K8s 不实现网络,它只规定了几条必须满足的约束。理解约束,才能理解各家 CNI 的取舍。
- →复述 K8s 网络模型的强制约束,并解释它为什么排除了端口映射方案
- →区分 Pod CIDR、Service CIDR、节点网段三套地址
- →判断一个网络需求该由 CNI、Service 还是 Ingress 来满足
- 2
动手:用 netns 和 veth 手搓一个容器网络
实验35 分钟仅大纲不用 K8s、不用 Docker,纯 ip 命令把两个"容器"连通,容器网络就没有秘密了。
- →手工创建 netns、veth pair 和网桥,让两个命名空间互通
- →解释容器出网为什么需要 SNAT
- →在宿主机上找到某个 Pod 对应的 veth 和 netns
- 3
CNI 与数据平面:overlay、原生路由与 eBPF
原理35 分钟同一个网络模型有三种实现路线,性能与运维复杂度差别很大。
- →解释 overlay(VXLAN/Geneve)与原生路由各自的代价
- →说清 eBPF 数据平面比 iptables 快在哪里
- →按机房条件(能否跑 BGP、MTU 是否可控)选 CNI 与模式
2Service 与南北流量
5 节 · 155 分钟 · 正文 1/5一个不存在的 IP 怎么工作、VIP 怎么让物理网络知道、L7 入口与 DNS 策略各在哪一层生效。
- 4
Service:一个不存在的 IP 是怎么工作的
原理35 分钟ClusterIP ping 不通却能访问。把这件事讲透,Service 的四种类型就都通了。
- →解释 ClusterIP 为什么 ping 不通,以及 DNAT 发生在哪一侧
- →区分 ClusterIP、NodePort、LoadBalancer、Headless 的适用场景
- →说清 externalTrafficPolicy 与源 IP 保留之间的取舍
- 5
kube-proxy 的三代实现与 eBPF 替换
原理深入30 分钟仅大纲iptables 模式在几千个 Service 时会退化。这节讲退化的原因和替代方案。
- →解释 iptables 模式的规则数量与匹配开销为何随 Service 数增长
- →说清 IPVS 模式改善了什么、没改善什么
- →判断是否该开 kubeProxyReplacement
- 6
MetalLB:裸金属集群的 LoadBalancer
原理35 分钟仅大纲云上一行 type: LoadBalancer 就有 VIP,裸金属得自己实现。两种宣告方式,选错了要么不通、要么只有高可用没有负载均衡。
- →解释 L2 模式下 VIP 是怎么被宣告与抢占的,以及为什么它只是高可用
- →说清 BGP 模式的对等配置与 ECMP 分担,并据此在两种模式之间选择
- →排查 VIP 不通时知道该看哪个 CRD、哪份日志、抓什么包
- 7
南北流量:Ingress、Gateway API 与出口治理
原理30 分钟仅大纲流量从集群外进来的几种正规入口,以及出方向该不该管、怎么管。
- →说出 Ingress 与 Gateway API 的能力差异和迁移路径
- →规划入口层:LB VIP、Ingress 控制器副本、证书从哪来
- →给出限制 Pod 出网的两种做法及其代价
- 8
CoreDNS 与 NetworkPolicy
原理25 分钟仅大纲集群里一半的"网络故障"其实是 DNS;另一半是策略拦了没人知道。
- →解释 Pod 内 DNS 查询的完整过程与 ndots 带来的额外查询
- →排查 CoreDNS 延迟与超时
- →写出一条最小放行的 NetworkPolicy 并验证它生效
3扩展与排障
2 节 · 65 分钟 · 正文 0/2给 Pod 插第二张网卡,然后练一次「Pod 之间不通」。
- 9
动手:给 Pod 插第二张网卡
实验35 分钟仅大纲AI 训练和虚拟机场景都需要 Pod 直连物理网。Multus、Spiderpool、MacVLAN 的实际配法。
- →用注解给 Pod 申请次级网卡与固定 IP 段
- →解释 MacVLAN、IPvlan、SR-IOV 三种接入方式的差异
- →判断什么场景必须 hostNetwork、什么场景该用 MacVLAN
- 10
闯关:Pod 之间不通
闯关30 分钟仅大纲同一个 Service 有些副本能访问、有些不行。在模拟终端里一层层剥开。
- →按 Pod → 节点 → CNI → Service → 策略的顺序收敛问题
- →区分 DNS 失败、策略拦截、路由缺失三类症状
- →定位到具体节点或具体规则,而不是停在"网络不通"