什么是 Spiderpool¶
Spiderpool 是一个 Kubernetes 的 Underlay 和 RDMA 网络解决方案,它增强了 MacVLAN CNI, IPVLAN CNI, SR-IOV CNI 的功能,满足了各种网络需求,使得 underlay 网络方案可应用在裸金属、虚拟机和公有云环境中,可为网络 I/O 密集性、低延时应用带来优秀的网络性能,包括存储、中间件、AI 等应用。可以参考网站了解更多详情。
目前 SpiderPool 支持的能力如下:
功能 | 描述 |
---|---|
多途径的 IP Pool 的使用方式 | 1. IP Pool 可通过 Node Selector 同命名空间、节点和应用进行关联使用。 2. 应用部署时可在 Annotation 中指定 IP Pool,按照优先级依次获取 IP Pool 中的 IP 资源。 |
IP Pool 的节点亲和性 | 同一集群内接入的节点可能属于不同数据中心,或者属于不同子网,因而同一个应用不同副本进行调度时,需要分配不同子网下的 IP 地址。IP Pool 的节点亲和性支持此场景。 |
IP Pool 的命名空间亲和性 | 基于 IP Pool 的命名空间亲和性,同一 IP Pool 可以同时共享给多个 Namespace 使用。 |
备用 IP Pool | 当 IP Pool 中 IP 地址分配完毕后,并且对应的子网已无可用 IP,可新建子网和 IP Pool,并指定给应用使用,防止应用扩容失败。 |
应用固定 IP | 自动化创建应用固定 IP 池并选择固定 IP 范围。 |
应用使用默认 IP 池 | 默认 IP 池,供那些没有特定IP需求的工作负载使用。 |
防止 IP 地址分配冲突的机制 | 1. IP Pool 中 IP 地址错开,IP Pool 间地址不重叠。 2. 严格管控 IP Pool 的增删改查,规避 IP 重叠。 3. 预留 IP 机制,可将已被集群外部节点使用的 IP 冻结,防止 IP 冲突。 |
防止 IP 地址泄露的回收机制 | 在 Pod 故障、重启、重建等场景下,清理 IP 资源被一些 “僵尸 Pod” 占用的垃圾数据,规避可用 IP 减少问题。 在 overlay IPAM 场景下,因为 CIDR 范围很大,所以该问题并不突出。而在 underlay 场景下,IP 资源有限,且部分应用有固定 IP 地址范围的需求,该问题就会影响应用的健康运行。 |
双栈支持 | 支持 ipv4-only、ipv6-only 和 dual-stack。 |
Statefulset 支持 | Statefulset Pod 在重启、重建场景下,持续获取到相同的 IP 地址。 |
Pod 多网卡支持 | 配合 Multus,实现对多网卡场景下的 IP 分配支持。 |
预留 IP | 预留 IP 机制,可将已被集群外部节点使用的 IP 冻结,防止 IP 冲突。 |
多层级路由定制 | 支持子网 CIDR、IP Pool、应用级别的自定义路由,路由优先级由低至高。 |
丰富的 Metrics | 提供丰富的监控指标,保障集群 IP 资源监控。 |