След две години развитие, изданието на проекта Kata Containers 3.0 е публикувано, което се развива стек за организиране на работещи контейнери използвайки изолация базирани на цялостни механизми за виртуализация.
В сърцето на Kata е времето за изпълнение, което предоставя възможност за създаване на компактни виртуални машини, които работят с помощта на пълен хипервизор, вместо да използват традиционни контейнери, които използват общо Linux ядро и са изолирани с помощта на пространства от имена и cgroups.
Използването на виртуални машини позволява да се постигне по-високо ниво на сигурност, което предпазва от атаки, причинени от експлоатация на уязвимости в ядрото на Linux.
Относно контейнерите Kata
Ката контейнери се фокусира върху интегрирането в изолационни инфраструктури на съществуващи контейнери с възможност за използване на тези виртуални машини за подобряване на защитата на традиционните контейнери.
Проектът предоставя механизми за правене на леки виртуални машини съвместими с различни изолационни рамки контейнери, платформи за оркестриране на контейнери и спецификации като OCI, CRI и CNI. Налични са интеграции с Docker, Kubernetes, QEMU и OpenStack.
Интеграцията със системи за управление на контейнериТова се постига чрез слой, който симулира управление на контейнери, който чрез gRPC интерфейса и специален прокси осъществява достъп до контролния агент на виртуалната машина. Като хипервизор се поддържа използването на Dragonball Sandbox (оптимизирано за контейнер KVM издание) с QEMU, както и Firecracker и Cloud Hypervisor. Системната среда включва демона за зареждане и агента.
Агентът изпълнява дефинирани от потребителя изображения на контейнери в OCI формат за Docker и CRI за Kubernetes. За да се намали консумацията на памет, се използва механизмът DAX и технологията KSM се използва за дедупликация на идентични области на паметта, позволявайки ресурсите на хост системата да бъдат споделяни и различни гост системи да се свързват с общ шаблон на системна среда.
Основни новости на Kata Containers 3.0
В новата версия предлага се алтернативно време за изпълнение (runtime-rs), който формира подложката на обвивката, написана на езика Rust (предоставената по-горе среда за изпълнение е написана на езика Go). време на изпълнение поддържа OCI, CRI-O и Container, което го прави съвместим с Docker и Kubernetes.
Друга промяна, която се откроява в тази нова версия на Kata Containers 3.0, е тази сега също има поддръжка на GPU. Това включва поддръжка за виртуална функция I/O (VFIO), което позволява сигурни, непривилегировани PCIe устройства и контролери за потребителско пространство.
Също така се подчертава, че внедрена поддръжка за промяна на настройките без промяна на основния конфигурационен файл чрез заместване на блокове в отделни файлове, разположени в директорията "config.d/". Компонентите на Rust използват нова библиотека за безопасна работа с файловите пътища.
Освен това, Появи се нов проект Kata Containers. Това е Confidential Containers, проект с отворен код на Cloud-Native Computing Foundation (CNCF). Тази последица от изолация на контейнери на Kata Containers интегрира инфраструктурата на Trusted Execution Environments (TEE).
От други промени които се открояват:
- Предложен е нов хипервизор на Dragonball, базиран на KVM и rust-vmm.
- Добавена е поддръжка за cgroup v2.
- virtiofsd компонент (написан на C), заменен с virtiofsd-rs (написан на Rust).
- Добавена е поддръжка за изолиране на QEMU компоненти в пясъчник.
- QEMU използва API io_uring за асинхронен I/O.
- Внедрена е поддръжка за Intel TDX (Trusted Domain Extensions) за QEMU и Cloud-hypervisor.
- Актуализирани компоненти: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux 5.19.2.
Накрая за тези, които се интересуват от проекта, трябва да знаете, че той е създаден от Intel и Hyper, комбинирайки технологии Clear Containers и runV.
Кодът на проекта е написан на Go и Rust и е пуснат под лиценза Apache 2.0. Развитието на проекта се наблюдава от работна група, създадена под егидата на независимата организация OpenStack Foundation.
Можете да научите повече за това на следваща връзка.