Pärast kahe aasta arendust on välja antud Kata Containers 3.0 projekt, mis arendab konteinerite täitmise infrastruktuuri, kasutades täielikke virtualiseerimise mehhanisme isoleerimiseks. Projekti on loonud ettevõtted Intel ja Hyper, ühendades Clear Containers ja runV tehnoloogiad. Projekti kood on kirjutatud keeltes Go ja Rust ning see jagatakse Apache 2.0 litsentsi alusel. Projekti arengut juhib töögrupp, mis on loodud sõltumatu OpenStack Foundationi all, kuhu kuuluvad sellised ettevõtted nagu Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE ja ZTE.
Kata põhineb runtime'il, mis võimaldab luua kompaktseid virtuaalseid masinaid, mis on täidetavad täieliku hüperviisoriga, mitte traditsiooniliste konteinerite kasutamisega, mis kasutavad ühist Linuxi tuuma ja on isoleeritud nimede ruumide ja cgroups abil. Kasutamine virtuaalmasinad tagab kõrgema turvalisuse taseme, mis kaitseb Linuxi tuuma haavatavuste ärakasutamise põhjustatud rünnakute eest.
Kata Containers on suunatud olemasolevate konteineri isoleerimise infrastruktuuride integreerimisele, pakkudes võimalusi sarnaste virtuaalmasinate kasutamiseks traditsiooniliste konteinerite kaitse tugevdamiseks. Projekt pakub mehhanisme kergete virtuaalmasinate ühilduvuse tagamiseks erinevate isoleerimise infrastruktuuride, konteinerite orkestreerimise platvormide ja spetsifikatsioonidega nagu OCI (Open Container Initiative), CRI (Container Runtime Interface) ja CNI (Container Networking Interface). Integreerimise vahendid on saadaval Dockeriga, Kubernetesega, QEMU ja OpenStackiga.

Integreerimine konteinerihaldussüsteemidega toimub liidese kaudu, mis simuleerib konteineri haldamist, pöördudes gRPC-liidese ja spetsiaalse proksi kaudu halduri agendi poole virtuaalmasinas. Virtuaalses keskkonnas, mille käivitab hüperviisor, kasutatakse spetsiaalselt optimeeritud Linuxi kernelit, mis sisaldab ainult minimaalset vajalikku funktsionaalsust.
Hüperviisorina toetatakse Dragonball Sandbox'i (KVM-i redaktsioon, mis on optimeeritud konteinerite jaoks) koos QEMU tööriistadega, samuti Firecracker ja Cloud Hypervisor. Süsteemi keskkond sisaldab initsialiseerimise deemonit ja agendid (Agent). Agent tagab, et kasutaja määratud OCI formaadi konteineripildid Dockerile ja CRI-le Kuberneteses saavad teostatud. Dockeriga koos kasutamisel luuakse igale konteinerile eraldi virtuaalne masin, st hüperviisoril põhinev keskkond rakendatakse konteinerite sissetoomiseks.

Mälu tarbimise vähendamiseks kasutatakse DAX-i (otsefailisüsteemi juurdepääs, mööda lehe vahemälu, ilma plokk-seadmestiku tasandita), ning KSM-i (Kernel Samepage Merging) tehnoloogia deduplikatsiooni jaoks sarnaste mälu piirkondade jaoks, mis võimaldab korraldada host-süsteemi ressursside jagamist ning ühise süsteemi keskkonna šablooni ühendamist erinevate külg-süsteemidega.
Uues versioonis:
- Pakkus välja alternatiivne runtime (runtime-rs), mis genereerib konteinerite sisu ja on kirjutatud Rust keeles (varasemalt pakutud runtime oli kirjutatud Go keeles). Runtime on ühilduv OCI, CRI-O ja Containerd-ga, mis võimaldab seda kasutada Dockeris ja Kuberneteses.
- Pakkus välja uue hyperviisori dragonball, mis põhineb KVM-il ja rust-vmm-il.
- Lisatud tugi GPU juurdepääsu edastamiseks, kasutades VFIO-d.
- Lisatud tugi cgroup v2-le.
- Realisatsioonist toetatakse seadistuste asendamist ilma peamise konfiguratsioonifaili muutmata, asendades plokke eraldi failides, mis asuvad kataloogis "config.d/".
- Rust keeles koostisosades on kasutusele võetud uus teek failiteede ohutuks käsitlemiseks.
- Virtiofsd komponent (kirjutatud C keeles) on asendatud virtiofsd-rs-iga (kirjutatud Rust keeles).
- Lisatud tugi QEMU komponentide sanduuki isolatsiooniks.
- QEMU-s kasutatakse asünkroonse sisendi/väljundi jaoks io_uring API-d.
- QEMU ja Cloud-hypervisor toetavad Intel TDX (Trusted Domain Extensions) laiendusi.
- Uuendatud komponente: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linuxi kernel 5.19.2.
Allikas: opennet.ru
