Издаден е выпуск на проекта 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 за всеки контейнер се създава отделна виртуална машина, т.е. стартираното върху хипервизора среда се прилага за вложено стартиране на контейнери.

За намаляване на потреблението на памет се прилага механизмът 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
