VPC-CNI
VPC-CNI
Section titled “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 数 + 滚动发布额外副本 + 故障迁移冗余 + 预留水位节点规格边界
Section titled “节点规格边界”VPC-CNI 下单节点可运行 Pod 数受实例规格、弹性网卡数量和单网卡可绑定 IP 数影响。上线前需要在目标机型上验证:
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 实践
Section titled “固定 IP 实践”- 只给确实需要白名单或状态绑定的服务启用固定 IP。
- 固定 IP 与业务实例、发布策略和回滚流程一起设计。
- Pod 重建、扩缩容、迁移时验证 IP 是否符合预期。
- 定期清理不再使用的固定 IP 资源,避免容量被占用。
| 风险 | 规避方式 |
|---|---|
| 子网 IP 耗尽 | 容量水位告警,按可用区预留 IP |
| 节点可用区与子网不匹配 | 节点池和容器子网按 AZ 对齐 |
| 单节点 Pod 密度低 | 选择合适机型或共享网卡模式 |
| 安全策略遗漏 Pod IP | 将 Pod 子网纳入安全组、ACL、路由评审 |