Cilium-это сетевое решение, наблюдение и безопасность с помощью DataPlane на основе EBPF. Он обеспечивает простую сеть плоского уровня 3 с возможностью охватывать несколько кластеров либо в собственном режиме маршрутизации, либо в режиме наложения. Он осведомлен о L7-протоколах и может обеспечить соблюдение сетевых политик на L3-L7, используя модель безопасности на основе идентификации, которая отделена от сетевой адресации.
Килий реализует распределенную балансировку нагрузки для трафика между стручками и внешними службами и способен полностью заменить Kube-Proxy, используя эффективные хэш-таблицы в EBPF, что обеспечивает практически неограниченную масштаб. Он также поддерживает расширенные функциональные возможности, такие как интегрированный вход и выходные шлюзы, сетка управления пропускной способностью и сервис, и обеспечивает глубокую видимость и мониторинг и мониторинг безопасности.
Новая технология ядра Linux под названием EBPF находится на основе реснички. Он поддерживает динамическую вставку байткода EBPF в ядро Linux в различных точках интеграции, таких как: сеть IO, розетки приложений и Tracepoints для реализации безопасности, сети и логики видимости. EBPF очень эффективен и гибкий. Чтобы узнать больше о EBPF, посетите ebpf.io.
Сообщество Cilium поддерживает незначительные стабильные выпуски для последних трех второстепенных версий реснички. Старые стабильные версии ресничек из второстепенных выпусков до этого считаются EOL.
Для обновлений до новых незначительных выпусков обратитесь к Руководству по обновлению ресничек.
Ниже перечислены активно поддерживаемые филиалы выпуска вместе с их последним выпуском патча, соответствующими тегами притяжения изображений и их примечаниями.
v1.16 | 2024-11-14 | quay.io/cilium/cilium:v1.16.4 | Выпуск заметок |
v1.15 | 2024-11-14 | quay.io/cilium/cilium:v1.15.11 | Выпуск заметок |
v1.14 | 2024-11-14 | quay.io/cilium/cilium:v1.14.17 | Выпуск заметок |
Изображения ресничек распределены для архитектур AMD64 и Aarch64.
Начиная с версии Cilium 1.13.0, все изображения включают в себя счет материалов (SBOM). SBOM генерируется в формате SPDX. Более подробная информация об этом доступна на Cilium SBOM.
Для целей разработки и тестирования сообщество Cilium публикует снимки, кандидаты в раннем выпуске (RC) и CI -контейнерные изображения построены из основной филиала. Эти изображения не для использования в производстве.
Для тестирования обновлений в новые выпуски разработки обратитесь к новейшей разработке Руководства по обновлению ресничек.
Ниже перечислены филиалы для тестирования вместе с их снимками или RC -выпусками, соответствующими тегами привлечения изображений и примечаниями к выпуску, где это применимо:
основной | ежедневно | quay.io/cilium/cilium-ci:latest | N/a |
v1.17.0-pre.2 | 2024-11-01 | quay.io/cilium/cilium:v1.17.0-pre.2 | Примечания к кандидату перед выпуском |
Возможность обеспечить современные протоколы применения, такие как REST/HTTP, GRPC и KAFKA. Традиционные брандмауэры работают на уровне 3 и 4. Протокол, работающий на конкретном порту, либо полностью доверяет, либо полностью заблокирован. Cilium предоставляет возможность фильтровать по запросам протокола индивидуальных приложений, таких как:
Разрешить все http -запросы с помощью метода GET
и path /public/.*
. Отрицайте все остальные запросы.
Разрешить service1
производить на kafka topic1
и service2
для потребления по topic1
. Отклонить все остальные сообщения Kafka.
Требуется заголовок http X-Token: [0-9]+
чтобы присутствовать во всех вызовах отдыха.
См. Политику уровня 7 -го уровня в нашей документации для последнего списка поддерживаемых протоколов и примеров о том, как его использовать.
Современные распределенные приложения полагаются на такие технологии, как контейнеры приложения, чтобы способствовать гибкости в развертывании и масштабировании по требованию. Это приводит к тому, что большое количество прикладных контейнеров запускается за короткий период времени. Типичные брандмауэры контейнеров безопасные рабочие нагрузки путем фильтрации на IP -адресах исходных и портов назначения. Эта концепция требует, чтобы брандмауэры на всех серверах манипулировали всякий раз, когда контейнер запускается в любом месте в кластере.
Чтобы избежать этой ситуации, которая ограничивает масштаб, Cilium назначает личность безопасности группам прикладных контейнеров, которые имеют идентичные политики безопасности. Затем идентичность связана со всеми сетевыми пакетами, испускаемыми контейнерами приложения, что позволяет проверять идентичность в приемном узле. Управление идентификацией безопасности выполняется с использованием магазина ключевых значений.
Безопасность на основе метки является инструментом выбора для контроля внутреннего доступа кластера. Чтобы обеспечить доступ к внешним службам и обратно, традиционные политики безопасности CIDR для входа и выход поддерживаются. Это позволяет ограничить доступ к и из приложений к определенным диапазонам IP.
Простая сеть плоского уровня 3 с возможностью охватывать несколько кластеров соединяет все контейнеры приложений. Распределение IP сохраняется простым с использованием распределителей прицела хоста. Это означает, что каждый хост может выделять IPS без какой -либо координации между хостами.
Поддерживаются следующие модели сети с несколькими узлами:
Overlay: виртуальная сеть на основе инкапсуляции, охватывающая все хосты. В настоящее время Vxlan и Geneve выпекаются, но все форматы инкапсуляции, поддерживаемые Linux, могут быть включены.
Когда использовать этот режим: этот режим имеет минимальные требования к инфраструктуре и интеграции. Он работает практически на любой сетевой инфраструктуре, поскольку единственным требованием является IP -соединение между хостами, которое обычно уже дано.
Нативная маршрутизация: использование обычной таблицы маршрутизации хоста Linux. Сеть должна быть способна направить IP -адреса контейнеров приложения.
Когда использовать этот режим: этот режим предназначен для продвинутых пользователей и требует некоторой осведомленности о базовой сетевой инфраструктуре. Этот режим хорошо работает:
Нативные сети IPv6
В сочетании с маршрутизаторами облачных сети
Если вы уже используете демоны маршрутизации
Cilium реализует распределенную балансировку нагрузки для трафика между контейнерами приложений и внешними службами и может полностью заменить компоненты, такие как Kube-Proxy. Балансировка нагрузки реализована в EBPF с использованием эффективных хэш -хаштатов, позволяющих практически неограниченный масштаб.
Для балансировки нагрузки типа север-юг реализация Cilium EBPF оптимизирована для максимальной производительности, может быть прикреплена к XDP (express Data Path) и поддерживает прямой возврат сервера (DSR), а также согласованное хэширование Maglev, если операция балансировки нагрузки не выполнена На хосте источника.
Для балансировки нагрузки на восток-запад Cilium выполняет эффективный перевод обслуживания к Backend прямо в слое гнезда ядра Linux (например, в TCP Connect Time), так что в нижних слоях можно избежать операций операций NAT.
Cilium реализует управление полосой пропускания через эффективное ограничение скорости на основе EDT (самое раннее время отправления) с помощью EBPF для контейнерного трафика, который вызывает узел. Это позволяет значительно уменьшить задержки хвоста передачи для применений и избежать блокировки в многопользовательских NICS по сравнению с традиционными подходами, такими как HTB (ковш-токен иерархия) или TBF (например, ковш-фильтр токенов), используемые в плагине CNI полосы пропускания.
Способность получить проблемы с видимостью и устранением неполадок имеет основополагающую для работы любой распределенной системы. В то время как мы научились любить такие инструменты, как tcpdump
и ping
, и хотя они всегда найдут особое место в наших сердцах, мы стремимся обеспечить лучшие инструменты для устранения неполадок. Это включает в себя инструменты для обеспечения:
Мониторинг событий с помощью метаданных: Когда пакет отбрасывается, инструмент не просто сообщает о IP -ip -источнике и пункте назначения пакета, инструмент предоставляет полную информацию о метке как отправителя, так и получателя среди множества другой информации.
Экспорт метрик через Prometheus: ключевые метрики экспортируются через Prometheus для интеграции с существующими панелями.
Хаббл: платформа наблюдения, специально написанная для реснички. Он обеспечивает карты зависимости обслуживания, операционный мониторинг и оповещение, а также видимость применения и безопасности на основе журналов потока.
Почему ресничка?
Начиная
Архитектура и концепции
Установка реснички
Часто задаваемые вопросы
Внося
Фильтр пакетов Berkeley (BPF) представляет собой интерпретатор Bytecode Linux ядра, первоначально введенный в сетевые пакеты фильтрации, например, для фильтров TCPDUMP и сокетов. Набор инструкций BPF и окружающая архитектура недавно были значительно переработаны с помощью дополнительных структур данных, таких как хэш -таблицы и массивы для сохранения состояния, а также дополнительные действия, чтобы поддержать умолчание пакета, пересылка, инкапсуляция и т. Д. для программ, которые будут написаны в C и составлены в инструкции BPF. Проверитель In-Kernel гарантирует, что программы BPF безопасны для запуска, а компилятор JIT преобразует байт-код BPF в инструкции, специфичную для архитектуры ЦП, для эффективности нативного выполнения. Программы BPF можно запускать в различных точках подключения в ядре, таких как входящие пакеты, исходящие пакеты, системные вызовы, KProbes, Uprobes, Tracepoints и т. Д.
BPF продолжает развиваться и получать дополнительные возможности с каждым новым выпуском Linux. Cilium использует BPF для выполнения фильтрации путей данных, управления, мониторинга и перенаправления и требует возможности BPF, которые находятся в любой версии ядра Linux 4.8.0 или новее (последняя текущая стабильная ядра Linux - 4.14.x).
Многие дистрибутивы Linux, включая Coreos, Debian, Docker's Linuxkit, Fedora, OpenSuse и Ubuntu, уже версии суда -ядра> = 4.8.x. Вы можете проверить свою версию ядра Linux, запустив uname -a
. Если вы еще не запускаете достаточно недавнего ядра, проверьте документацию вашего распределения Linux о том, как запустить ядро Linux 4.9.x или позже.
Чтобы прочитать необходимые версии ядра, чтобы запустить время выполнения BPF, см. Предварительные условия раздела.
XDP является еще одним шагом в эволюции и позволяет запускать определенный вкус программ BPF от сетевого драйвера с прямым доступом к буферу DMA пакета. По определению это самая ранняя точка в программном стеке, где программы могут быть прикреплены, чтобы обеспечить программируемый процессор с высокопроизводительным пакетом в пути данных Linux Kernel.
Дополнительную информацию о BPF и XDP, предназначенной для разработчиков, можно найти в Справочном руководстве BPF и XDP.
Чтобы узнать больше о ресничек, его расширения и варианты использования вокруг ресничек и BPF рассматривают раздел дальнейших показаний.
Присоединяйтесь к каналу Cilium Slack, чтобы пообщаться с разработчиками ресничек и другими пользователями ресничек. Это хорошее место, чтобы узнать о ресничках, задать вопросы и поделиться своим опытом.
Смотрите группы с особыми интересами для списка всех SIGS и их времени встречи.
Сообщество разработчиков Cilium Developer болтается на Zoom, чтобы поболтать. Все приветствуются.
Еженедельно, среда, 5:00 вечера Европы/Цюрихское время (CET/CEST), обычно эквивалентно 8:00 утра PT, или 11:00 по восточному времени. Примечания к собранию и информация о масштабах
Третья среда каждого месяца, 9:00 утра в Японии (JST). Заметки на встречу APAC и информация о масштабах
Мы принимаем еженедельное сообщество на YouTube Livestream под названием Echo, которое (очень свободно!) Снется за рабочие часы EBPF и Cilium. Присоединяйтесь к нам в прямом эфире, догоняйте прошлые эпизоды или отправляйтесь в Echo Repo и дайте нам знать ваши идеи по темам, которые мы должны осветить.
Проект Cilium регулируется группой сопровождающих и комитетов. То, как они выбраны и управляются, изложено в нашем документе управления.
Список усыновителей проекта Cilium, которые развертывают его в производстве, и их варианты использования можно найти в файлах users.md.
Килий поддерживает общественную дорожную карту. Это дает высокий уровень представления основных приоритетов для проекта, зрелости различных функций и проектов, а также о том, как влиять на направление проекта.
Компоненты пространства ресничной реснички лицензированы по лицензии Apache, версия 2.0. Шаблоны кода BPF имеют двойную лицензию по общей публичной лицензии, версии 2.0 (только) и лицензии BSD на 2 пункта (вы можете использовать условия любой лицензии, по вашему варианту).