A fost publicat numărul 3.4 al proiectului Kata Containers, care dezvoltă un stack pentru organizarea execuției containerelor utilizând izolare bazată pe mecanisme complete de virtualizare. Proiectul a fost creat de companiile Intel și Hyper prin combinarea tehnologiilor Clear Containers și runV. Codul proiectului este scris în limbile Go și Rust și este distribuit sub licența Apache 2.0. Dezvoltarea proiectului este coordonată de un grup de lucru, creat sub egida organizației independente OpenInfra Foundation, la care participă companii precum Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE și ZTE.
Bazându-se pe Kata, runtime-ul permite crearea de mașini virtuale compacte, executate folosind un hypervisor complet, în locul utilizării containerelor tradiționale, care folosesc un nucleu Linux comun și sunt izolate prin spații de nume și cgroups. Utilizarea mașini virtuale permite atingerea unui nivel mai înalt de securitate, protejând împotriva atacurilor cauzate de exploatarea vulnerabilităților din nucleul Linux.
Kata Containers este orientat spre integrarea în infrastructurile existente de izolare a containerelor, cu posibilitatea de a utiliza astfel de mașini virtuale pentru a spori protecția containerelor tradiționale. Proiectul oferă mecanisme pentru asigurarea compatibilității mașinilor virtuale ușoare cu diverse infrastructuri de izolare a containerelor, platforme de orchestrare a containerelor și specificații precum OCI (Open Container Initiative), CRI (Container Runtime Interface) și CNI (Container Networking Interface). Sunt disponibile instrumente pentru integrarea cu Docker, Kubernetes, QEMU și OpenStack.
Integrarea cu sistemele de gestionare a containerelor se realizează printr-un strat care simulează gestionarea containerului, care, prin intermediul unei interfețe gRPC și a unui proxy special, se adresează agentului de control din mașina virtuală. În interiorul mediului virtual care rulează pe hypervisor, se folosește un nucleu Linux optimizat, care conține doar setul minim de funcționalități necesare.
Ca hipervizor este acceptat Dragonball Sandbox (ediția KVM, optimizată pentru containere) cu instrumentele QEMU, precum și Firecracker și Cloud Hypervisor. Mediul de sistem include un demon de inițializare și un agent (Agent). Agentul asigură executarea anumitor imagini de container specificate de utilizator în format OCI pentru Docker și CRI pentru Kubernetes. Atunci când este utilizat împreună cu Docker, pentru fiecare container se creează o mașină virtuală separată mașină virtuală, adică mediul lansat deasupra hipervizorului este utilizat pentru lansarea încuplată a containerelor.

Pentru a reduce consumul de memorie, se aplică mecanismul DAX (acces direct la FS ocolind cache-ul paginilor fără a utiliza nivelul dispozitivelor de bloc), iar pentru deduplicarea zonelor de memorie identice se aplică tehnologia KSM (Kernel Samepage Merging), ceea ce permite organizarea utilizării comune a resurselor sistemului gazdă și conectarea unui șablon comun al mediului de sistem la diferite sisteme gazdă.
Pentru organizarea accesului la imaginile containerelor, este utilizat sistemul de fișiere Nydus, care folosește adresarea pe bază de conținut pentru a colabora eficient cu imaginile tipice. Nydus suportă încărcarea imaginilor pe parcurs (încarcă doar în momentul în care este necesar), asigură deduplicarea datelor repetate și poate utiliza diferite backend-uri pentru stocarea efectivă. Se oferă compatibilitate cu POSIX (similar cu Composefs, implementarea Nydus combină capabilitățile OverlayFS cu EROFS sau modul FUSE).
În noua versiune:
- În managerul de mașini virtuale Dragonball a fost adăugată suport pentru conectarea la cald a GPU-ului și posibilitatea de a utiliza registrele MTRR (Memory-Type Range Registers) pentru a organiza accesul la zonele de memorie fizică.
- În runtime-rs, implementarea runtime-ului în limbajul Rust, a fost asigurată o gestionare completă a thread-urilor, pid și tid, iar driverul qemu a fost revizuit, acesta fiind utilizat pe sistemele cu arhitectură s390 (IBM Z).
- A fost actualizat serviciul pentru crearea de snapshoot-uri cu utilizarea FS Nydus.
- În serviciul de gestionare a imaginilor containerelor, a fost îmbunătățită eficiența în utilizarea memoriei.
- A fost inclus implicit montarea ierarhiei cgroups-v2 în timpul bootării cu ajutorul systemd.
- A fost adăugată posibilitatea de a defini un timeout pentru a limita timpul de obținere a imaginilor foarte mari în sistemele gazdă.
- A fost adătat suport pentru construcția agentului OPA (Open Policy Agent) pentru arhitecturile ppc64le și s390x.
Sursa: opennet.ro
