Мы являемся Cloud Native Computing Foundation sandbox-проектом.
Spiderpool — это underlay- и RDMA-решение для сетей Kubernetes, предназначенное для работы на bare metal, виртуальных машинах и в любых публичных облаках.
Введение
Spiderpool — это underlay- и RDMA-сетевое решение для Kubernetes. Оно расширяет возможности Macvlan CNI, ipvlan CNI и SR-IOV CNI, закрывает широкий спектр сетевых задач и поддерживает работу на bare metal, виртуальных машинах и в публичных облаках. Spiderpool обеспечивает исключительную сетевую производительность, что особенно важно для приложений с интенсивным сетевым вводом-выводом и низкой задержкой: хранилища данных, middleware и AI. Подробности — на официальном сайте.
Стабильные релизы
Сообщество Spiderpool регулярно поддерживает перечисленные ниже версии. Более старые минорные выпуски считаются завершившими срок поддержки (EOL).
Перед обновлением до новой минорной версии ознакомьтесь с ./docs/usage/install/upgrade.md[руководством по обновлению Spiderpool].
Ниже приведены примечания к релизам для актуальных поддерживаемых веток и их последних патчей:
| Ветка релиза | Примечания к релизу |
|---|---|
Преимущества underlay CNI
К underlay CNI относятся в первую очередь macvlan, ipvlan и SR-IOV — интерфейсы, обеспечивающие доступ к layer 2-сети узла. У этого подхода есть ряд существенных преимуществ:
-
macvlan, ipvlan и SR-IOV критически важны для поддержки сетевого ускорения RDMA. RDMA значительно повышает производительность AI-приложений, а также приложений, чувствительных к задержкам и требующих интенсивного сетевого ввода-вывода, превосходя overlay-решения по сетевым показателям.
-
В отличие от CNI-решений на базе виртуальных интерфейсов veth, underlay-сети не требуют L3-форвардинга на хосте и исключают накладные расходы на туннельную инкапсуляцию. Это обеспечивает высокую пропускную способность, низкие задержки и сниженную загрузку CPU при сетевой маршрутизации.
-
Бесшовная интеграция с underlay-сетями VLAN уровня 2 открывает приложениям возможность как L2-, так и L3-коммуникации. Поддерживаются multicast и broadcast, а пакеты могут контролироваться межсетевыми экранами.
-
Пакеты данных несут реальные IP-адреса подов, что позволяет организовать прямую north-south-коммуникацию по Pod IP. Такая связность между мультиоблачными сетями повышает гибкость и упрощает работу.
-
Underlay CNI умеет создавать виртуальные интерфейсы на основе разных родительских сетевых интерфейсов хоста, предоставляя изолированные подсети для приложений с высокими сетевыми требованиями — например, для систем хранения и инструментов наблюдаемости.
Ключевые возможности
-
Простая установка и использование
Spiderpool устраняет необходимость вручную устанавливать несколько компонентов — таких как https://github.com/k8snetworkplumbingwg/multus-cni[Multus CNI], RDMA и SR-IOV, — упрощая процесс инсталляции и сокращая количество запущенных Pod'ов. Проект предлагает streamlined-процедуры установки, инкапсулирует соответствующие CRD и сопровождается подробной документацией для удобной настройки и управления.
-
CRD-based IPAM с поддержкой dual-stack
Spiderpool предоставляет эксклюзивные и разделяемые пулы IP-адресов с поддержкой различных настроек affinity. Поддерживается назначение статических IP-адресов для stateful-приложений — таких как https://www.mysql.com[mysql], https://github.com/redis/redis[redis], https://github.com/kubevirt/kubevirt[kubevirt], — а также фиксация диапазонов IP-адресов для stateless-приложений. Также поддерживается привязка и освобождение облачных IP-ресурсов через универсальный IaaS Network Provider. Spiderpool автоматизирует управление эксклюзивными пулами IP-адресов, обеспечивая надёжное высвобождение адресов и исключая их утечку. Кроме того, предусмотрена ./docs/concepts/ipam-performance.md[высокая производительность IPAM].
IPAM Spiderpool доступен для любого основного CNI, поддерживающего сторонние IPAM-плагины: не только для https://github.com/containernetworking/plugins/tree/main/plugins/main/macvlan[Macvlan CNI], https://github.com/containernetworking/plugins/tree/main/plugins/main/ipvlan[ipvlan CNI] и https://github.com/k8snetworkplumbingwg/sriov-cni[SR-IOV CNI], но и для https://github.com/projectcalico/calico[calico] и https://github.com/weaveworks/weave[weave] — в сценариях использования статических IP.
-
Несколько сетевых интерфейсов от underlay- и overlay-CNI
Spiderpool поддерживает сценарии, в которых поды могут иметь несколько underlay CNI-интерфейсов или комбинацию overlay- и underlay-интерфейсов. При этом каждому CNI-интерфейсу корректно назначаются IP-адреса, а policy routing управляется так, чтобы пути прохождения трафика оставались стабильными без потерь пакетов. Spiderpool усиливает возможности https://github.com/cilium/cilium[cilium], https://github.com/projectcalico/calico[calico] и https://github.com/kubevirt/kubevirt[kubevirt].
-
Улучшенная сетевая связность
Нативные CNI на базе macvlan, ipvlan и SR-IOV имеют ряд ограничений при коммуникации. Spiderpool устраняет их: обеспечивает бесшовную связность между подами и хост-машинами, корректную работу проверок состояния Pod'ов, а также доступ к сервисам через kube-proxy или замену kube-proxy на базе eBPF. Дополнительно поддерживаются обнаружение IP-конфликтов и проверка доступности шлюзов. Сети нескольких кластеров могут быть объединены через общую underlay-сеть или с помощью https://github.com/submariner-io/submariner[Submariner].
-
Улучшения на базе eBPF
Замена kube-proxy на eBPF-based решение существенно ускоряет доступ к сервисам, а технология socket short-circuiting повышает эффективность локальной коммуникации между подами на одном узле. По сравнению с kube-proxy ./docs/concepts/io-performance.md[прирост производительности составляет до 25% по задержке и до 50% по пропускной способности].
-
Поддержка RDMA
Spiderpool предлагает RDMA-решения на основе технологий RoCE и InfiniBand. Под может использовать RDMA-устройство в разделяемом или эксклюзивном режиме — это хорошо подходит для AI-нагрузок.
-
Поддержка dual-stack
Spiderpool поддерживает окружения с IPv4-only, IPv6-only и dual-stack.
-
Высокая производительность по задержке и пропускной способности
Spiderpool превосходит overlay CNI по задержке и пропускной способности — подробности в ./docs/concepts/io-performance.md[отчёте о производительности].
-
Метрики
Сценарии применения
Благодаря underlay CNI Spiderpool обеспечивает сетевую производительность, недостижимую для overlay-решений, что подтверждается ./docs/concepts/io-performance.md[данными тестирования I/O]. Проект эффективно применяется в следующих сценариях:
-
Развёртывание на bare metal, виртуальных машинах и в публичных облаках — в том числе единое underlay CNI-решение для гибридных облаков.
-
Традиционные приложения, ранее работавшие на хостах. Они нуждаются в прямом доступе к underlay-сети: прямое подключение к нескольким underlay-подсетям, поддержка multicast, L2-коммуникация и т.д. Такие приложения не могут принять NAT overlay-сети и хотят перейти в Kubernetes без изменений.
-
Сетево-интенсивные приложения: middleware, хранилища данных, системы сбора логов и наблюдаемости, AI-обучение.
-
Приложения, которым требуется отдельная полоса пропускания.
-
Приложения, критичные к задержкам.
Быстрый старт
-
./docs/usage/install/get-started-kind.md[Быстрый старт] — знакомство со Spiderpool.
-
./docs/usage/readme.md[Индекс документации] — подробное описание использования.
-
./docs/concepts/arch.md[Архитектура Spiderpool] — детальное описание внутреннего устройства.
Дорожная карта
| Функциональность | macvlan | ipvlan | SR-IOV |
|---|---|---|---|
Service By Kubeproxy |
Beta |
Beta |
Beta |
Service By Kubeproxy Replacement |
Alpha |
Alpha |
Alpha |
Network Policy |
In-plan |
Alpha |
In-plan |
Bandwidth |
In-plan |
Alpha |
In-plan |
RDMA |
Alpha |
Alpha |
Alpha |
IPAM |
Beta |
Beta |
Beta |
Multi-Cluster |
Alpha |
Alpha |
Alpha |
Egress Policy |
Alpha |
Alpha |
Alpha |
Multiple NIC And Routing Coordination |
Beta |
Beta |
Beta |
Scenarios |
Bare metal |
Bare metal and VM |
Bare metal |
Подробное описание всех запланированных функций — в ./docs/develop/roadmap.md[дорожной карте].
Блог
Материалы публикуются в ./docs/concepts/blog.md[разделе блога].
Управление проектом
Проект управляется группой мейнтейнеров и коммиттеров. Порядок их выбора и принятия решений описан в документе по управлению.
Пользователи
Список организаций, использующих Spiderpool в production, и описание их сценариев применения приведены в ./docs/USERS.md[соответствующем файле].
Участие в разработке
Изучите ./docs/develop/contributing.md[руководство по участию] и присоединяйтесь к разработке Spiderpool.
Сообщество
Сообщество Spiderpool стремится поддерживать открытую и дружелюбную среду. Есть несколько способов взаимодействия с пользователями и разработчиками. Подробная информация — в репозитории сообщества.
По любым вопросам обращайтесь по следующим каналам:
-
Slack: вступите в канал #Spiderpool в CNCF Slack, запросив приглашение. После получения доступа к CNCF Slack вы сможете присоединиться к каналу Spiderpool.
-
Email: адреса всех мейнтейнеров приведены в MAINTAINERS.md. Вы можете написать им по любому вопросу или для сообщения об ошибке.
-
Community Meeting: приглашаем на встречи сообщества, которые проходят первого числа каждого месяца. Приходите, чтобы обсудить вопросы, связанные со Spiderpool.
-
WeChat-группа: отсканируйте QR-код ниже, чтобы вступить в группу технического обсуждения Spiderpool.
Лицензия
Spiderpool распространяется под лицензией Apache License, Version 2.0. Полный текст лицензии — в файле ./LICENSE[LICENSE].
Дополнительно
Copyright The Spiderpool Authors
Мы являемся Cloud Native Computing Foundation sandbox-проектом.
Linux Foundation® (TLF) зарегистрировала товарные знаки и использует их. Список товарных знаков TLF приведён на странице Trademark Usage.