Spiderpool: underlay и RDMA-сети для Kubernetes

Логотип Spiderpool

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].

Ниже приведены примечания к релизам для актуальных поддерживаемых веток и их последних патчей:

Ветка релиза Примечания к релизу

release-v1.2

Release Notes

release-v1.1

Release Notes

Преимущества 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
  • Простая установка и использование

    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.

QR-код для вступления в WeChat-группу Spiderpool

Лицензия

Spiderpool распространяется под лицензией Apache License, Version 2.0. Полный текст лицензии — в файле ./LICENSE[LICENSE].

Дополнительно

Copyright The Spiderpool Authors

Linux Foundation® (TLF) зарегистрировала товарные знаки и использует их. Список товарных знаков TLF приведён на странице Trademark Usage.

© 2026 meganuke