После двух лет разработки опубликован выпуск проекта 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 usmjerena je na integraciju u postojeće infrastrukture za izolaciju kontejnera s mogućnošću korištenja sličnih virtualnih strojeva za poboljšanje zaštite tradicionalnih kontejnera. Projekt pruža mehanizme za osiguravanje kompatibilnosti laganih virtualnih strojeva s različitim infrastrukturama za izolaciju spremnika, platformama za orkestraciju spremnika i specifikacijama kao što su OCI (Open Container Initiative), CRI (Container Runtime Interface) i CNI (Container Networking Interface). Dostupni su alati za integraciju s Dockerom, Kubernetesom, QEMU i OpenStackom.
Integracija sa sustavima za upravljanje kontejnerima ostvaruje se pomoću sloja koji simulira upravljanje kontejnerima, koji pristupa agentu za upravljanje u virtualnom stroju preko gRPC sučelja i posebnog proxyja. Unutar virtualnog okruženja, koje pokreće hipervizor, koristi se posebno optimizirana jezgra Linuxa koja sadrži samo minimalni skup potrebnih mogućnosti.
Kao hipervizor, podržava korištenje Dragonball Sandboxa (izdanje KVM-a optimizirano za kontejnere) s QEMU alatom, kao i Firecracker i Cloud Hypervisor. Okruženje sustava uključuje inicijalizacijski demon i agent. Agent omogućuje izvođenje korisnički definiranih slika spremnika u OCI formatu za Docker i CRI za Kubernetes. Kada se koristi u kombinaciji s Dockerom, za svaki spremnik stvara se zasebno virtualno računalo, tj. Okolina koja se izvodi na vrhu hipervizora koristi se za ugniježđeno pokretanje spremnika.
Za smanjenje potrošnje memorije koristi se DAX mehanizam (izravan pristup datotečnom sustavu, zaobilaženje predmemorije stranice bez korištenja razine blok uređaja), a za dedupliciranje identičnih memorijskih područja koristi se KSM (Kernel Samepage Merging) tehnologija koja omogućuje za organiziranje dijeljenja resursa glavnog sustava i povezivanje s različitim gostujućim sustavima dijele zajednički predložak okruženja sustava.
U novoj verziji:
- Предложен альтернативный 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 (написан на Си) заменён на 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.
Izvor: opennet.ru