Представлен запуск проекта Cilium 1.4, в котором при участии Google, Facebook, Netflix и Red Hat, это развивается система, гарантирующая сетевое взаимодействие и применение политик безопасности для изолированных контейнеров и процессов.
Чтобы различать доступ к сети в Cilium, eBPF используется (Пакетный фильтр Беркли) и XDP (Путь к данным eXpress). Код для компонентов пользовательского уровня написан на Go и распространяется под лицензией Apache 2.0.
Сценарии BPF, загруженные в ядро Linux, доступны по лицензии GPLv2.
О ресничке
В основе Cilium лежит фоновый процесс, который работает в пользовательском пространстве и выполняет работу по генерации и компиляции программ BPF., а также взаимодействие со средой выполнения, предоставляемой контейнерами.
В виде программ GMP, внедрены системы, обеспечивающие связь контейнеров, интеграция с сетевой подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировка нагрузки.
Фоновый процесс дополнен интерфейсом администрирования, хранилищем правил доступа, система мониторинга и модули интеграции с поддержкой Kubernetes, Mesos, Istio и Docker.
По производительности решение на основе Cilium с большим количеством сервисов и подключений вдвое превосходит решения на основе iptables из-за высоких накладных расходов на поиск правил.
Основные нововведения
ресница у вас есть возможность маршрутизировать и пересылать служебный трафик между несколькими кластерами Kubernetes.
Также предлагается концепция глобальных сервисов (вариант полнофункциональных сервисов Kubernetes с мультикластерными бэкэндами).
также имеет инструменты для установки правил обработки DNS-запросов и ответов вместе с группами контейнеров (pods), что позволяет увеличить контроль над использованием внешних ресурсов контейнеров.
Кроме того, есть поддержка регистрации всех DNS-запросов и ответов вместе с подами. Помимо правил доступа на уровне IP-адресов, теперь вы можете определить, какие DNS-запросы и DNS-ответы действительны, а какие следует заблокировать.
Например, вы можете заблокировать доступ к определенным доменам или разрешить запросы только для локального домена, без необходимости отслеживать изменения в привязке доменов к IP.
Это включает в себя возможность использовать возвращенный IP-адрес в процессе DNS-запроса для ограничения последующих сетевых операций (например, вы можете разрешить доступ только к IP-адресам, которые были возвращены во время разрешения DNS.
Основные новые возможности Cilium версии 1.4
В новой версии Добавлена экспериментальная поддержка прозрачного шифрования всего трафика между сервисами. Шифрование может использоваться для трафика между разными кластерами, а также внутри одного кластера.
Также было добавлено возможность аутентификации узлов, позволяющая разместить кластер в ненадежной сети.
Новый функционал позволяет в случае сбоев бэкэнда, обеспечивающего работу сервиса в кластере, автоматически перенаправлять трафик на процессоры этого сервиса в другом кластере.
Добавлено экспериментальная поддержка сетевых интерфейсов IPVLAN, что обеспечивает более высокую производительность и меньшие задержки при взаимодействии между двумя локальными контейнерами;
Добавлен модуль для интеграции Flannel, система для автоматизации настройки сетевого взаимодействия между узлами в кластере Kubernetes, позволяющая работать параллельно или запускать Cilium поверх Flannel (сетевое взаимодействие Flannel, балансировка Cilium и политики доступа).
Была предоставлена экспериментальная помощь по определению правил доступа на основе метаданных AWS. (Amazon Web Services), например теги EC2, группы безопасности и имена VPC.
Также была предложена возможность запуска Cilium на GKE (Google Kubernetes Engine в Google Cloud) с использованием COS (Container Optimized Operating System);
Это дает возможность тестирования использовать Sockmap BPF для ускорения связи между локальными процессами (например, полезно для ускорения взаимодействия между дополнительным прокси-сервером и локальными процессами).