Efter tvÄ Ärs utveckling har version 3.0 av projektet Kata Containers publicerats, vilket utvecklar en stack för att organisera körning av containrar med hjÀlp av isolering baserad pÄ fullstÀndiga virtualiseringsmekanismer. Projektet skapades av företagen Intel och Hyper genom att kombinera teknologierna Clear Containers och runV. Projektets kod Àr skriven i sprÄken Go och Rust och distribueras under licensen Apache 2.0. Projektets utveckling övervakas av en arbetsgrupp som skapats under ledning av den oberoende organisationen OpenStack Foundation, dÀr företag som Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE och ZTE deltar.
Grunden för Kata utgörs av ett runtime, som möjliggör skapandet av kompakta virtuella maskiner, som körs med hjÀlp av en fullstÀndig hypervisor, istÀllet för att anvÀnda traditionella containrar som utnyttjar en gemensam Linux-kÀrna och isoleras med hjÀlp av namnrymder och cgroups. AnvÀndningen virtuella maskiner möjliggör en högre sÀkerhetsnivÄ som skyddar mot attacker orsakade av utnyttjande av sÄrbarheter i Linux-kÀrnan.
Kata Containers Àr inriktad pÄ integration med befintliga infrastrukturer för containerisolering med möjligheten att anvÀnda sÄdana virtuella maskiner för att stÀrka skyddet för traditionella containrar. Projektet tillhandahÄller mekanismer för att sÀkerstÀlla kompatibilitet för lÀttvikts virtuella maskiner med olika infrastrukturer för containerisolering, plattformar för orkestrering av containrar och specifikationer som OCI (Open Container Initiative), CRI (Container Runtime Interface) och CNI (Container Networking Interface). Verktyg för integration med Docker, Kubernetes, QEMU och OpenStack Àr tillgÀngliga.

Integrationen med containerhanteringssystem uppnÄs med hjÀlp av ett lager som simulerar containerhantering, vilket via gRPC-grÀnssnittet och en speciell proxy kontaktar en hanteringsagent i den virtuella maskinen. Inuti den virtuella miljön, som startas av hypervisorn, anvÀnds en sÀrskilt optimerad Linux-kÀrna, som innehÄller endast den minimala uppsÀttningen nödvÀndiga funktioner.
Som hypervisor stöds anvÀndning av Dragonball Sandbox (KVM-redigering, optimerad för containrar) med verktygen QEMU samt Firecracker och Cloud Hypervisor. Systemmiljön inkluderar en initieringsdemonstration och en agent (Agent). Agenten möjliggör körning av specifika anvÀndarbildkontainrar i OCI-format för Docker och CRI för Kubernetes. NÀr den anvÀnds tillsammans med Docker skapas en separat virtuell maskin, dvs. den körs ovanpÄ hypervisorn och anvÀnds för inneslutet körning av containrar.

För att minska minnesanvÀndningen anvÀnds mekanismen DAX (direct access to the FS bypassing page cache without using block device layer), och för deduplicering av identiska minnesomrÄden anvÀnds teknologin KSM (Kernel Samepage Merging), vilket möjliggör delning av resurser pÄ vÀrdsystemet och anslutning till olika gÀstsystem med en gemensam systemmiljömall.
I den nya versionen:
- En alternativ runtime (runtime-rs) har föreslagits, som skapar innehÄllet i containrar, skriven i sprÄket Rust (den tidigare levererade runtime var skriven i Go). Runtime Àr kompatibel med OCI, CRI-O och Containerd, vilket gör att den kan anvÀndas med Docker och Kubernetes.
- En ny hypervisor dragonball har föreslagits, baserad pÄ KVM och rust-vmm.
- Stöd för GPU-Ätkomst vidarebefordran har lagts till, med hjÀlp av VFIO.
- Stöd för cgroup v2 har lagts till.
- Stöd för att förÀndra instÀllningar utan att Àndra huvudkonfigurationsfilen genom att ersÀtta block i separata filer som lagras i katalogen "config.d/" har implementerats.
- I komponenter skrivna i Rust har ett nytt bibliotek anvÀnts för sÀker hantering av filvÀgar.
- Komponenten virtiofsd (skriven i C) har ersatts med virtiofsd-rs (skriven i Rust).
- Stöd för sandbox-isolering av QEMU-komponenter har lagts till.
- I QEMU anvÀnds API:t io_uring för asynkron in-/utdata.
- För QEMU och Cloud-hypervisor har stöd för Intel TDX (Trusted Domain Extensions) implementerats.
- Komponenterna har uppdaterats: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux-kÀrna 5.19.2.
KĂ€lla: opennet.ru
