След като два години разработка, е публикувано изданието на проекта Kata Containers 3.0, което развива стек за организиране на изпълнението на контейнери с използване на изолация на базата на пълноценни механизми за виртуализация. Проектът е създаден от компаниите 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 за всеки контейнер се създава отделна виртуална машина, т.е. стартираното върху хипервизора среда се прилага за вложено стартиране на контейнери.

За намаляване на потреблението на памет се прилага механизмът DAX (достъп до файловата система без кеширане на страниците, без използване на блокови устройства), а за дупликация на еднакви области на паметта се прилага технологията KSM (Kernel Samepage Merging), което позволява организиране на споделянето на ресурси на хост системата и свързването на различни гостуващи системи с общ шаблон на системната среда.
В новата версия:
- Предложен е алтернативен runtime (runtime-rs), който формира съдържанието на контейнерите и е написан на езика Rust (по-ранният предоставян runtime е написан на Go). Runtime е съвместим с OCI, CRI-O и Containerd, което позволява да се използва с Docker и Kubernetes.
- Предложен е нов хипервизор dragonball, основан на KVM и rust-vmm.
- Добавена е поддръжка за проброс на достъп до GPU, използвайки VFIO.
- Добавена е поддръжка за cgroup v2.
- Реализирана е поддръжка за промяна на настроените параметри без да се променя основният конфигурационен файл чрез замяна на блокове в отделни файлове, поставени в директорията «config.d/».
- В компонентите на Rust е включена нова библиотека за безопасна работа с файлови пътища.
- Компонентът virtiofsd (написан на C) е заменен с virtiofsd-rs (написан на Rust).
- Добавена е поддръжка за sandbox-изолация на компонентите QEMU.
- В QEMU за асинхронен вход/изход е задействан API io_uring.
- За QEMU и Cloud-hypervisor е реализирана поддръжка за разширения на Intel TDX (Trusted Domain Extensions).
- Актуализирани са компонентите: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, ядро Linux 5.19.2.
Източник: opennet.ru
