Випуск Kata Containers 3.2 з ізоляцією на основі віртуалізації

Опубліковано випуск проекту Kata Containers 3.2, що розвиває стек для організації виконання контейнерів із використанням ізоляції на базі повноцінних механізмів віртуалізації. Проект створений компаніями Intel та Hyper шляхом об'єднання технологій Clear Containers та runV. Код проекту написаний мовами Go та Rust і поширюється під ліцензією Apache 2.0. Розвиток проекту займається робочою групою, створеною під егідою незалежної організації OpenStack Foundation, в якій беруть участь такі компанії, як Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE та ZTE.

Основу Kata становить runtime, що дозволяє створювати компактні віртуальні машини, що виконуються з використанням повноцінного гіпервізора, замість застосування традиційних контейнерів, що використовують загальне ядро ​​Linux та ізольованих за допомогою просторів імен та cgroups. Застосування віртуальних машин дозволяє досягти більш високого рівня безпеки, що захищає від атак, викликаних експлуатацією вразливостей в ядрі Linux.

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

Інтеграція з системами управління контейнерами досягається за допомогою прошарку, що симулює управління контейнером, який через gRPC-інтерфейс і спеціальний проксі звертається до керуючого агента у віртуальній машині. Всередині віртуального оточення, яке запускається гіпервізором, використовується спеціально оптимізоване ядро ​​Linux, що містить лише мінімальний набір необхідних можливостей.

Як гіпервізор підтримується використання Dragonball Sandbox (редакція KVM, оптимізована для контейнерів) з інструментарієм QEMU, а також Firecracker та Cloud Hypervisor. Системне оточення включає демон ініціалізації та агент (Agent). Агент забезпечує виконання визначених користувачем образів контейнера у форматі OCI для Docker та CRI для Kubernetes. Під час використання разом із Docker кожному контейнеру створюється окрема віртуальна машина, тобто. оточення, що запускається поверх гіпервізора, застосовується для вкладеного запуску контейнерів.

Випуск Kata Containers 3.2 з ізоляцією на основі віртуалізації

Для зменшення споживання пам'яті застосовується механізм DAX (прямий доступ до ФС в обхід сторінкового кешу без застосування рівня блокових пристроїв), а для дедуплікації однакових областей пам'яті застосовується технологія KSM (Kernel Samepage Merging), що дозволяє організувати спільне використання ресурсів хост-системи та підключити до Різним гостьовим системам загальний шаблон системного оточення.

В новой версії:

  • Крім підтримки архітектури AMD64 (x86_64) забезпечено формування релізів для архітектур ARM64 (Aarch64) та s390 (IBM Z). Розробка містить підтримку архітектури ppc64le (IBM Power).
  • Для організації доступу до образів контейнерів задіяна файлова система Nydus 2.2.0, в якій використовується адресація вмісту для ефективної спільної роботи з типовими образами. Nydus підтримує завантаження образів на льоту (завантажує тільки при виникненні необхідності), забезпечує дедуплікацію даних, що повторюються, і може використовувати різні бекенди для фактичного зберігання. Надається сумісність із POSIX (за аналогією з Composefs, реалізація Nydus поєднує можливості OverlayFS з EROFS або FUSE-модулем).
  • В основний склад проекту Kata Containers інтегровано менеджера віртуальних машин Dragonball, який тепер розвиватиметься в загальному репозиторії.
  • В утиліту kata-ctl додано налагоджувальну функцію для підключення до віртуальної машини з хост-оточення.
  • Розширено можливості управління GPU та додано підтримку прокидання GPU в контейнери для конфіденційних обчислень (Confidential Container), в який забезпечується шифрування даних, пам'яті та стану виконання для захисту у разі компрометації хост-оточення або гіпервізора.
  • У Runtime-rs додано підсистему керування пристроями, що використовуються в контейнерах або sandbox-оточеннях. Підтримується робота з vfio, блочними, мережевими та іншими типами пристроїв.
  • Забезпечено сумісність з OCI Runtime 1.0.2 та Kubernetes 1.23.1.
  • Як ядро ​​Linux рекомендовано використовувати випуск 6.1.38 із патчами.
  • Розробку перекладено з використання системи безперервної інтеграції Jenkins на GitHub Actions.

Джерело: opennet.ru

Додати коментар або відгук