跳转至

CNI 方案比较和常见问题

与 Spiderpool + IPVlan 的比较

四种模式与 Spiderpool + IPVlan 的异同点:

网络模式 是否支持自建集群 Pod 的 IP 是否为 Underlay IP 双栈支持 固定 Pod IP Pod QoS Network Policy LoadBalancer 服务支持 Pod 多网卡 成本 其他
Terway VPC 支持 最低,对 ECS 规格无要求,对弹性网卡和辅助IP的数量不作要求 需要依赖 CCM 组件发布 VPC 路由
Terway ENI 支持 不支持设置externalTrafficPolicy 为Local 最高,可部署 Pod 数量取决于 ECS 实例的弹性网卡数量 性能最好, 成本最高
Terway ENIIP 不支持, 只 ACK 集群支持 较低,可部署 Pod 数量 = (ECS 实例的弹性网卡数量 - 1) * 每个 ENI 支持的辅助 IP 数量 支持 veth 和 IPVlan 模式,IPVlan 模式内核版本大于 v4.2
Terway ENIIP-Trunking 不支持, 只 ACK 集群支持 较低,可部署 Pod 数量 = (ECS 实例的弹性网卡数量 - 1) * 每个 ENI 支持的辅助 IP 数量 正在公测中
Spiderpool + IPVlan 支持 较低,可部署 Pod 数量 = (ECS 实例的弹性网卡数量 - 1) * 每个 ENI 支持的辅助 IP 数量 需要将 Spiderpool IP 池与 ENI 的辅助 IP 对应
Calico 支持 最低,对 ECS 规格无要求,对弹性网卡和辅助 IP 的数量不作要求 隧道模式不依赖 CCM,非隧道模式依赖
Cilium 支持 最低,对 ECS 规格无要求,对弹性网卡和辅助 IP 的数量不作要求 隧道模式不依赖 CCM,非隧道模式依赖

常见问题

  1. 如何查看 ECS 不同实例规格支持的 ENI 数量及 ENI 上支持的辅助 IP 数量?

    不同规格支持数量不同,可参考 实例规格族 获取详细信息。

  2. ENIIP 模式下,Pod 的部署密度如何?

    可部署 Pod 数量 = ( ECS 实例 ENI 数量 - 1 ) * 每个 ENI 支持的最大辅助 IP 数量。

  3. Pod 独占 ENI 网卡时,有哪些通信问题?

    此模式下,Pod 拥有最佳性能。但对于设置 externalTrafficPolicy 为 Local 的 LoadBalancer/NodePort Service,会存在因来回路径不一致, 导致无法访问的问题。

  4. 阿里云自建集群是否支持运行 Calico 和 Cilium 作为 CNI 插件?

    阿里云原生支持 Flannel CNI 插件,除此之外也支持 Calico 和 Cilium 运行。

    • 对于 Calico:

      支持隧道模式(VXLAN or IPIP) 和路由模式。隧道模式下 Pod 之间的通信不依赖 CCM 组件,但 LoadBalancer Service 依赖 CCM 实现。路由模式 下需要切换 IPAM 为 host-local 或 Spiderpool。详见 阿里云运行 Calico

    • 对于 Cilium:

      支持 tunnel 和 native 模式,tunnel 模式 Pod 通信不依赖 CCM 组件,但 LoadBalancer Service 依赖 CCM 实现。native 模式 需要切换 Cilium 的 IPM mode 为 kubernetes, 详见 阿里云运行 Cilium

评论