AI 助教问 AI 助教
东方瑞通 · CKA

网络模型、CNI与NetworkPolicy

K8s 网络模型要求 Pod 间不经 NAT 即可直接通信;NetworkPolicy 是网络隔离策略,通过 podSelector/namespaceSelector 规则控制入站与出站流量。

考点精讲

  1. Kubernetes 网络模型规定:每个 Pod 有唯一 IP、Pod 间不经 NAT 直接通信、节点与 Pod 互通。这套模型由 CNI 插件负责落地。NetworkPolicy 是在此之上的网络隔离策略,通过 podSelector、namespaceSelector 等规则控制流量的入站(ingress)和出站(egress)。要特别注意两点:一是「默认全放通」——不创建任何策略时 Pod 间完全互通,一旦创建了策略,未匹配的流量会被默认拒绝,形成白名单;二是 NetworkPolicy 需要支持它的 CNI 插件才能生效(如 Calico),Flannel 默认不启用。漏写 egress 规则是常见错误,会让出站流量被意外阻断。

记忆技巧

默认全网通,写了策略就白名单化
NetworkPolicy 要有支持它的 CNI(如 Calico)

常见误区

  • 用 Flannel 默认不启 NetworkPolicy 导致策略无效
  • 以为 NetworkPolicy 是默认拒绝(实际默认放通)
  • 漏写 egress 规则导致出站被断

真题思路

  • 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 关于 NetworkPolicy 默认行为,正确的是?
    默认拒绝所有流量 默认全放通,创建策略后未匹配流量被拒绝 默认只允许 ingress 默认只允许 egress
    答案:B
    解析:NetworkPolicy 默认全放通;一旦创建策略,未匹配流量默认拒绝,形成白名单。

常见问题

Q:不创建 NetworkPolicy 时 Pod 之间能通信吗

A:能,默认全放通,创建策略后才变成白名单。

Q:为什么我的 NetworkPolicy 不生效

A:可能是所用 CNI 插件(如 Flannel 默认)不支持 NetworkPolicy,需换 Calico 等。

Q:只写了 ingress 规则,出站会被断吗

A:会,未匹配的 egress 流量默认被拒绝,需补 egress 规则。

相关知识

教材出处:第14章 Kubernetes网络安全 网络模型、CNI与NetworkPolicy

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑