Giter Site home page Giter Site logo

liuflylove666 / spiderpool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spidernet-io/spiderpool

0.0 1.0 0.0 27.13 MB

kubernetes ipam

Home Page: https://spidernet-io.github.io/spiderpool/

License: Apache License 2.0

Shell 6.40% Go 87.74% Makefile 4.49% Smarty 0.70% Dockerfile 0.68%

spiderpool's Introduction

Spiderpool

Go Report Card CodeFactor Quality Gate Status codecov Auto Version Release Auto Nightly CI CII Best Practices badge badge badge badge badge

Status

Currently, the Spiderpool is under beta stage, not ready for production environment yet.

Introduction

The Spiderpool is an IP Address Management (IPAM) CNI plugin that assigns IP addresses for kubernetes clusters.

Currently, it is under developing stage, not ready for production environment yet.

Any Container Network Interface (CNI) plugin supporting third-party IPAM plugins can use the Spiderpool, such as MacVLAN CNI, VLAN CNI, IPVLAN CNI etc. The Spiderpool also supports Multus CNI case to assign IP for multiple interfaces. More CNIs will be tested for integration with Spiderpool.

Why Spiderpool

Most overlay CNIs, like Cilium and Calico, have a good implementation of IPAM, so the Spiderpool is not intentionally designed for these cases, but maybe integrated with them.

The Spiderpool is intentionally designed to use with underlay network, where administrators can accurately manage each IP.

Currently, in the community, the IPAM plugins such as whereabout, kube-ipam, static, dhcp, and host-local, few of them could help solve complex underlay-network issues, so we decide to develop the Spiderpool.

BTW, there are also some CNI plugins that could work on the underlay mode, such as kube-ovn and coil. But the Spiderpool provides lots of different features, you could see Features for details.

Features

The Spiderpool provides a large number of different features as follows.

  • Support ranges of CNI plugin who supports third-party IPAM plugins. Especially, the Spiderpool could help much for CNI like spiderflat, macvlan CNI, vlan CNI, ipvlan CNI, sriov CNI, ovs CNI.

  • Especially, support multiple interfaces for Multus CNI, a pod could specify different ippool for each interface.

  • Support for assigning IP addresses with three options: IPv4-only, IPv6-only, and dual-stack.

  • Support for working on the clusters with three options: IPv4-only, IPv6-only, and dual-stack.

  • Support for creating multiple ippools. Different namespaces and applications could monopolize or share an ippool.

  • An application could specify multiple backup ippool resources, in case that IP addresses in an ippool are out of use. Therefore, you neither need to scale up the IP resources in a fixed ippool, nor need to modify the application yaml to change a ippool.

  • An applications could bind range of fixed IP address. No need to hard code an IP list in deployment yaml, which is not easy to modify. With Spiderpool, you only need to set the selector field of ippool and scale up or down the IP resource of an ippool dynamically.

  • Support Statefulset pod who will be always assigned same IP addresses.

  • For an application deployed in different subnets or zones, its pods could get IP addresses from different subnets.

  • Collect resources in real time, especially for solving IP leakage or slow collection, which may make new pod fail to assign IP addresses.

  • By SpiderSubnet feature, it could automatically create new ippool for application who needs fixed IP address, and retrieve the ippool when application is deleted. Especially, the created ippool could automatically scale up or down the IP number when the replica number of application changes. That could reduce the administrator workload.

  • Support to reserve IP who will not be assigned to any pod.

  • Included metrics for looking into IP usage and issues.

  • Have a good performance for assigning and collecting IP.

  • Based on CRD storage, all operation could be done with kubernetes API-server.

  • Administrator could safely edit kinds of spiderpool CRD resources, the Spiderpool will help validate the modification and prevent from kinds of conflict and mistake.

  • Support for both AMD64 and ARM64.

Components

Refer to architecture for components.

Installation

Refer to installation.

Quick Start

Refer to demo.

Development

Development guide is a reference point for development helper commands.

License

Spiderpool is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

spiderpool's People

Contributors

weizhoublue avatar icarus9913 avatar iiiceoo avatar dependabot[bot] avatar ty-dc avatar bzsuni avatar yulng avatar lou-lan avatar cyclinder avatar windsonsea avatar yankay avatar aoisop avatar ty-ci-robot avatar altaribnl avatar yanansn avatar swatchgame avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.