Після двох років розвитку, опубліковано випуск проекту Kata Containers 3.0, що розвивається стек для організації запущених контейнерів з використанням ізоляції на основі повних механізмів віртуалізації.
В основі Kata лежить середовище виконання, яке надає можливість створювати компактні віртуальні машини, які працюють із використанням повного гіпервізора, а не з використанням традиційних контейнерів, які використовують звичайне ядро Linux і ізольовані за допомогою просторів імен і контрольних груп.
Використання віртуальних машин дозволяє досягти більш високого рівня безпеки, який захищає від атак, спричинених використанням уразливостей у ядрі 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. Це включає підтримку віртуальних функцій введення-виведення (VFIO), що забезпечує захищені, непривілейовані пристрої PCIe та контролери простору користувача.
Також підкреслюється, що реалізована підтримка зміни налаштувань без зміни основного конфігураційного файлу шляхом заміни блоків в окремих файлах, розташованих у каталозі "config.d/". Компоненти Rust використовують нову бібліотеку для безпечної роботи зі шляхами до файлів.
Крім того, З’явився новий проект Kata Containers. Це конфіденційні контейнери, проект пісочниці з відкритим кодом Cloud-Native Computing Foundation (CNCF). Цей наслідок ізоляції контейнерів Kata Containers інтегрує інфраструктуру довірених середовищ виконання (TEE).
З інші зміни що виділяються:
- Було запропоновано новий гіпервізор Dragonball на основі KVM і rust-vmm.
- Додано підтримку для cgroup v2.
- компонент virtiofsd (написаний на C) замінено на virtiofsd-rs (написаний на Rust).
- Додано підтримку ізоляції компонентів QEMU в пісочниці.
- QEMU використовує API io_uring для асинхронного введення-виведення.
- Реалізовано підтримку 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.
Ви можете дізнатися більше про це на наступне посилання.