跳转到内容

VPC-CNI

VPC-CNI 的核心价值是让 Pod 直接使用 VPC 子网 IP,获得更直接的网络路径、更好的 VPC 互通体验和固定 IP 能力。生产设计的关键是子网容量和节点规格边界。


诉求建议
普通微服务默认网络模式通常足够,先评估是否真的需要 VPC-CNI
低时延VPC-CNI 可减少转发路径,适合延迟敏感服务
固定 Pod IP使用 VPC-CNI,并设计 IP 保留和回收流程
高 Pod 密度优先评估共享网卡模式和实例规格 IP 上限
强隔离/高性能可评估独占网卡模式,但要接受更低单节点密度

  • 容器子网独立于普通 CVM、CLB 子网,避免互相抢占 IP。
  • 每个可用区都规划足够子网容量,覆盖节点池可用区。
  • 预留扩容水位,避免节点扩容成功但 Pod 无 IP 可分配。
  • 记录每个业务命名空间、节点池和容器子网的容量归属。

估算方式:

需要 Pod IP 数 = 峰值 Pod 数 + 滚动发布额外副本 + 故障迁移冗余 + 预留水位

VPC-CNI 下单节点可运行 Pod 数受实例规格、弹性网卡数量和单网卡可绑定 IP 数影响。上线前需要在目标机型上验证:

Terminal window
kubectl describe node <node-name> | sed -n '/Allocatable:/,/Events:/p'
kubectl get pods -A -o wide --field-selector spec.nodeName=<node-name>

不要只看 CPU 和内存,Pod IP 容量也可能成为调度瓶颈。


  • 只给确实需要白名单或状态绑定的服务启用固定 IP。
  • 固定 IP 与业务实例、发布策略和回滚流程一起设计。
  • Pod 重建、扩缩容、迁移时验证 IP 是否符合预期。
  • 定期清理不再使用的固定 IP 资源,避免容量被占用。

风险规避方式
子网 IP 耗尽容量水位告警,按可用区预留 IP
节点可用区与子网不匹配节点池和容器子网按 AZ 对齐
单节点 Pod 密度低选择合适机型或共享网卡模式
安全策略遗漏 Pod IP将 Pod 子网纳入安全组、ACL、路由评审