Подготовлен (https://cilium.io/blog/2018/06/26/cilium-11/) релиз проекта Cilium 1.1 (https://cilium.io), в рамках которого при участии компаний Google, Facebook, Netflix и Red Hat развивается система для обеспечения сетевого взаимодействия и применения политик безопасности для изолированных контейнеров и процессов. Для разграничения сетевого доступа в Cilium применяются еBPF (https://en.wikipedia.org/wiki/Berkeley_Packet_Filter#Extensi...) (Berkeley Packet Filter) и XDP (https://www.iovisor.org/technology/xdp) (eXpress Data Path). Код компонентов, работающих на уровне пользователя, написаны на языке Go и распространяются (https://github.com/cilium/cilium) под лицензией Apache 2.0. Загружаемые в ядро Linux сценарии BPF доступны под лицензией GPLv2.
Основу Cilium составляет фоновый процесс, который работает в пространстве пользователя и выполняет работу по генерированию и компилированию BPF-программ, а также взаимодействия с runtime, обеспечивающим работу контейнеров. В форме BPF-программ реализованы системы обеспечения связности контейнеров, интеграции с сетевой подсистемой (физические и виртуальные сети, VXLAN, Geneve) и балансировки нагрузки. Фоновый процесс дополняют управляющий cli-интерфейс, репозиторий правил доступа, система мониторинга и модули интеграции с поддержкой Kubernetes, Mesos и Docker. Более подробно про особенности Cilium можно прочитать в тексте анонса (https://www.opennet.dev/opennews/art.shtml?num=48556) первого выпуска проекта.
Основные новшества:
- Возможность интеграции с платформой управления микросервисами Istio (https://www.opennet.dev/opennews/art.shtml?num=46598), которая обеспечивает распределение нагрузки между микросервисами, организует аутентификацию, разграничение доступа и защищённое взаимодействие между микросервисами, превращая набор запущенных в разных контейнерах микросервисов в приложение, слаженно работающее как единое целое;
- Поддержка дополнительных runtime для обеспечения работы контейнеров - cri-o (https://github.com/kubernetes-incubator/cri-o) и containerd (https://www.opennet.dev/opennews/art.shtml?num=47681). Имеющийся runtime определяется автоматически, но может быть явно выбран при помощи опции "--container-runtime";
- Улучшение поддержки Kubernetes: поддержка дополнительных политик безопасности Kubernetes 1.11 (podSelector и namespaceSelector), возможность сопоставления данных аккаунтинга, возможность разделения локального трафика (например, проверок мониторинга) и трафика к внешним узлам через SNAT;
- Возможность определения комбинированных правил с номером сетевого порта (IP+L4) и названием протокола (L7), применяемых только вместе с проверкой по IP/CIDR;
- Оптимизация производительности системы отслеживания соединений: Возможность отбрасывания записей отслеживания соединений, если соединения подпадает под правило блокировки трафика. Более агрессивная чистка таблиц отслеживания соединений для не TCP-трафика;
- Повышение производительности механизмов идентификации и обработки MTU;
- Поддержка дополнительных метрик мониторинга производительности: добавление счётчиков перенаправления и отбрасывания трафика для
L3/L4/L7.
- Возможность изменения или добавления IP-адреса хоста с автоматическим применением определённых для хоста правил. Обеспечение непрерывной синхронизации правил и выполняющих их проверку BPF-программ. Поддержка TCP keepalive;
- Базовый образ контейнера обновлён до пакетной базы Ubuntu 18.04.
URL: https://cilium.io/blog/2018/06/26/cilium-11/
Новость: https://www.opennet.dev/opennews/art.shtml?num=48897