跳转至

什么是 Spiderpool

Spiderpool 是一个 IP 地址管理 (IPAM) 插件,可为容器云平台分配 IP 地址。 大部分的 Overlay CNI 都具备符合功能特性的 IPAM 组件,SpiderPool 的主要设计目标是搭配 Underlay CNI (例如 MacVLAN CNIVLAN CNIIPVLAN CNI等)进行 IP 的精细化管理。

Spiderpool 适用于任何能够对接第三方 IPAM 的 CNI 插件,尤其适合于一些缺失 IPAM 的 CNI, 包括 SR-IOVMacVLANIPVLANOVS-CNI 等。 而一些 overlay CNI 自带了 IPAM 组件,对 Spiderpool 需求相对较低。

目前 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 地址分配冲突的机制 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 资源监控。

评论