Компании Intel и Hyper представили проект Kata Containers, в рамках которого предпринята попытка объединить технологии Clear Containers и runV, нацеленные на организацию выполнения контейнеров с использованием изоляции на базе полноценных механизмов виртуализации. Развитие проекта будет курировать независимая организация OpenStack Foundation. О поддержке нового проекта уже заявили компании 99cloud, AWcloud, Canonical, China Mobile, City Network, CoreOS, Dell/EMC, EasyStack, Fiberhome, Google, Huawei, JD.com, Mirantis, NetApp, Red Hat, SUSE, Tencent, Ucloud, UnitedStack и ZTE. Код опубликован под лицензией Apache 2.0.

Как и Clear Containers новый проект позволяет создавать компактные виртуальные машины, выполняемые с использованием полноценного гипервизора, а не в форме запускаемого в одной ОС набора процессов, изолированного при помощи пространств имён и cgroups. Ключевым отличием нового проекта является ориентация на интеграцию в существующие инфраструктуры контейнерной изоляции c возможностью применения подобных виртуальных машин для усиления защиты традиционных контейнеров. Применение виртуальных машин позволяет добиться более высокого уровня безопасности, защищающего от совершения атак, вызванных эксплуатацией уязвимостей в ядре Linux.

В Kata Containers предоставлены механизмы для обеспечения совместимости легковесных виртуальных машины с различными инфраструктурами контейнерной изоляции, платформами оркестровки контейнеров и спецификациями, такими как OCI (Open Container Initiative), CRI (Container Runtime Interface) и CNI (Container Networking Interface). Доступены средства для интеграции с Docker, Kubernetes, QEMU и OpenStack. Взаимодействие осуществляется через прослойку, симулирующую управление контейнером, которая через gRPC-интерфейс и специальный прокси обращается к управляющему агенту в виртуальной машине.

Внутри виртуального окружения, которое запускается гипервизором, используется специально оптимизированное ядро Linux, содержащее только минимальный набор необходимых возможностей. Системное окружение включает в себя только демон инициализации и агент (Аgent). Агент обеспечивает выполнение определённых пользователем образов контейнера в формате OCI для Docker и CRI для Kubernetes. При использовании совместно с Docker для каждого контейнера создаётся отдельная виртуальная машина, т.е. запускаемое поверх гипервизора окружение применяется для вложенного запуска контейнеров.

В условиях выполнения большого числа типовых окружений, накладные расходы на каждое последующее окружение составляет 18-20 Мб, что даёт возможность уместить 3500 виртуальных машин на сервере с 128 Гб ОЗУ. Окружение запускается менее, чем за 100ms, что позволяет использовать Kata Containers для запуска контейнера с приложениями на лету, в моменты, когда в них возникает необходимость. В качестве гипервизора по умолчанию предлагается использовать KVM в сочетании с инструментарием QEMU, но проект изначально позиционируется как не привязанный к конкретным архитектурам и способный работать с различными гипервизорами (например, Xen).

Для уменьшения потребления памяти применяется механизм DAX (прямой доступ к ФС в обход страничного кэша без применения уровня блочных устройств), а для дедупликации одинаковых областей памяти применяется технология KSM (Kernel Shared Memory), что позволяет организовать совместное использование ресурсов хост-системы и подключить к разным гостевым системам общий шаблон системного окружения.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here