The Spiderpool is an IP Address Management (IPAM) CNI plugin that assigns IP addresses for kubernetes cluster.
Currently, it is under developing stage, not ready for production environment.
Any CNI (Container Network Interface) plugin supporting third-party IPAM plugin, can use the Spiderpool, such as macvlan CNI, vlan CNI, ipvlan CNI etc. The Spiderpool also support multus CNI case to assign IP for multiple interfaces. The Spiderpool will be tested with more CNI for integration.
For most overlay CNI, like cilium, calico, they have good implement of IPAM, so, the Spiderpool is not intentionally designed to these cases, but maybe integrate with them.
The Spiderpool is intentionally designed to use for underlay network, and administrator could accurately manage each IP.
Currently, in the community, the IPAM plugin, such as whereabout, kube-ipam, static, dhcp, host-local. , few of them could help solve complex underlay-network needs, so, we decide to develop the spiderpool.
BTW, there is also some CNI plugins who could work on underlay mode, such as kube-ovn and coil. But the spiderpool provides lots of different features, you could refer Feature for detail
-
Based on CRD storage. All operation could be done with kubernetes API-server
-
Support assigning IP for IPv4-only, IPv6-only and dual-stack case
-
Support creating multiple ippool. Different namespace and application could monopolize or share an ippool
-
An application could specify multiple backup ippool resource, in case that IP in an ippool is out of use. Therefore, no need to scale up the IP resource in a fixed ippool, or no need to modify the application yaml to change a ippool
-
Support assign fixed IP for application. No need to hard code the IP list of pod yaml, which is not easy to modify it, just set the selector field of ippool and scale up or down the ippool.
-
Support assign IP by order for statefulset pod
-
For an application who deployed in different subent or zone, different pods in a same controller could get IP from different subnet.
-
Administrator could safely edit ippool resource, the spiderpool will help validate the modification and prevent from data race.
-
real-time resource collection, especially for solving IP leaking or slow collection, which may make new pod fail to assign IP.
-
Support ranges of CNI (Container Network Interface) plugin, who support third-party IPAM plugin. Especially, the Spiderpool could help much for CNI like spiderflat, macvlan CNI, vlan CNI, ipvlan CNI, sriov CNI, ovs CNI
-
Especially support Multus CNI case to assign IP for multiple interfaces.
-
good performance for assigning and collect ip
-
support global and ippool-range reserve IP, who will not assign even included in an ippool
-
reach metrics for look into IP usage and issue
refer to architecture for components
refer to installation
for quick start, refer to demo
for complex case, refer to ippool usage
Development guide is a reference point for development helper commands
refer to roadmap
Spider pool is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.