Выпуск Cilium 1.4, сетевой системы для Linux-контейнеров, основанной на BPF

Прeдстaвлeн рeлиз прoeктa Cilium 1.4, в рaмкax кoтoрoгo рядом учaстии кoмпaний Google, Facebook, Netflix и Red Hat рaзвивaeтся систeмa oбeспeчeния сeтeвoгo взaимoдeйствия и примeнeния пoлитик бeзoпaснoсти чтобы изoлирoвaнныx кoнтeйнeрoв и прoцeссoв. Для рaзгрaничeния сeтeвoгo дoступa в Cilium примeняются eBPF (Berkeley Packet Filter) и XDP (eXpress Data Path). Зaгружaeмыe в ядрo Linux сцeнaрии BPF доступны лещадь лицензией GPLv2. Основу Cilium составляет низкоприоритетный процесс, который работает в пространстве пользователя и выполняет работу согласно генерации и компиляции BPF-программ, а также взаимодействию с runtime, обеспечивающим работу контейнеров. В форме BPF-программ реализованы системы обеспечения связности контейнеров, интеграции с тенетный подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировки нагрузки. Сопутствующий процесс дополняют управляющий cli-интерфейс, репозиторий правил доступа, сингония мониторинга и модули интеграции с поддержкой Kubernetes, Mesos, Istio, и Docker. Полезный эффект решения на базе Cilium около большом числе сервисов и соединений в двушник раза опережает решения на базе iptables изо-за больших накладных расходов бери перебор правил. Более подробно ради особенности Cilium можно прочитать в тексте анонса первого выпуска проекта. Основные новшества: Добавлена потенциальность маршрутизации и проброса трафика сервисов промеж (себя) несколькими кластерами Kubernetes. Также предложена тезис глобальных сервисов (вариант штатных сервисов Kubernetes с бэкендами в нескольких кластерах). Новая функциональность позволяет в случае выхода изо строя бэкендов, обеспечивающих работу сервиса в одном кластере, бессознательно перенаправить трафик к обработчикам данного сервиса в другом кластере. Реализованы имущество для задания правил обработки запросов и ответов DNS в привязке к группам контейнеров (pods), позволяющие обогатить контроль за обращением к внешним ресурсами изо контейнеров. Дополнительно появилась поддержка ведения лога всех запросов и ответов DNS в привязке к pod-ам. Вне правил доступа на уровне IP-адресов ноне можно определить какие DNS-запросы и DNS-ответы допустимы, а какие нужно замораживать. Например, можно блокировать доступ к определённым доменам иначе разрешить запросы только для локального домена, минус необходимости отслеживания изменений привязки доменов к IP. В часть числе реализована возможность использования возвращённого в процессе запроса к DNS IP-адреса про ограничения последующих сетевых операций (во, можно разрешить только обращение к IP-адресам, которые были возвращены присутствие резолвинге в DNS, т.е. Шифрование может применяться (то) есть для трафика между разными кластерами, беспричинно и в пределах одного кластера. Также добавлена осуществимость аутентификации узлов, что позволяет все кластер в не заслуживающей доверия тенета; Добавлена экспериментальная поддержка сетевых интерфейсов IPVLAN, позволяющих выхлопотать более высокой производительности и снизить задержки подле взаимодействии между двумя локальными контейнерами; Добавлен устройство для интеграции с Flannel, системой с целью автоматизации настройки сетевого взаимодействия в обществе узлами в кластере Kubernetes, позволяющий сопеть над чем бок о бок или запустить Cilium через Flannel (сетевое взаимодействие от Flannel, политики доступа и симметрирование от Cilium); Обеспечена экспериментальная палочка-выручалочка определения правил доступа на основе метаданных AWS (Amazon Web Services), таких на правах метки EC2, группы безопасности и имена VPC; Предоставлена случай запуска Cilium в GKE (Google Kubernetes Engine в Google Cloud) с использованием COS (Container-Optimized OS); Обеспечена тестовая право для использования Sockmap BPF для ускорения коммуникаций в обществе локальными процессами (например, полезно угоду кому) ускорения взаимодействия между sidecar proxie и локальными процессами); Добавлены дополнительные метрики интересах системы мониторинга Prometheus и предложены новые графики в переводной панели Grafana; Добавлена поддержка Kubernetes 1.13 и новых версий CRI-O; Проведена большая вещь по оптимизации потребления памяти и нагрузки сверху CPU. Источник: http://www.opennet.ru/opennews/art.shtml?num=50144