Kubernetes 网络全景:从身份、入口、策略到排障

1. Pod 网络模型

  • 最小网络单元是 Pod
  • 同 Pod 容器共享 IP、端口空间、localhost
  • 每个 Pod 拿到集群内唯一 IP
  • 普通应用不应该依赖 Pod IP 的长期稳定性

2. Pod 级端口

containerPort:声明容器端口,不是防火墙。

hostPort:把容器端口绑定到所在节点端口,适合 DaemonSet / node agent。

hostNetwork:Pod 直接使用宿主网络,隔离最弱。

3. CNI 数据面

CNI 负责 IPAM、veth/路由/Overlay/ENI/eBPF、NetworkPolicy 执行。

先确认:Pod CIDR、Service CIDR、MTU、是否支持策略、是否替代 kube-proxy。

4. Service 抽象

Service = 稳定入口 + 动态后端。

核心链路:

DNS -> ClusterIP / Service VIP -> kube-proxy 或 eBPF -> EndpointSlice -> PodIP:targetPort

5. 入口类型

  • ClusterIP:集群内部
  • NodePort:每节点固定端口
  • LoadBalancer:云 / 裸金属 LB
  • Ingress:HTTP/HTTPS host/path
  • Gateway API:新一代多协议路由

6. 策略与安全

NetworkPolicy 是 allow-list API。

默认通常全通;Pod 被策略选中后,对应方向进入隔离。

是否生效取决于 CNI。

7. 排障入口

按层定位:

Pod -> CNI -> DNS -> Service / EndpointSlice -> kube-proxy/eBPF -> LB / Ingress / Gateway -> NetworkPolicy / Mesh

hostPort 记忆钩子

hostPort 是“这个节点上这个端口”的语义。

Service 是“这组 Pod 作为一个服务”的语义。

业务入口默认先考虑 Service / Ingress / Gateway。

Pod 内部到节点端口真正接入网络Pod 后端被抽象成 Service暴露给集群内外再加访问控制出问题按层排主解释挂回 MOCCNI 专项Service 专项L7 入口策略专项DNS 专项避免混淆云原生总图