Uitgave van Kata Containers 3.0 met op virtualisatie gebaseerde isolatie

Na twee jaar ontwikkeling is de release van het Kata Containers 3.0-project gepubliceerd, waarin een stack wordt ontwikkeld voor het organiseren van de uitvoering van containers met behulp van isolatie op basis van volwaardige virtualisatiemechanismen. Het project is gemaakt door Intel en Hyper door Clear Containers en runV-technologieën te combineren. De projectcode is geschreven in Go en Rust en wordt gedistribueerd onder de Apache 2.0-licentie. De ontwikkeling van het project staat onder toezicht van een werkgroep die is opgericht onder auspiciën van de onafhankelijke organisatie OpenStack Foundation, waarin bedrijven als Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE en ZTE zitting hebben. .

De kern van Kata is de runtime, die de mogelijkheid biedt om compacte virtuele machines te creëren die draaien met een volledige hypervisor, in plaats van traditionele containers te gebruiken die een gemeenschappelijke Linux-kernel gebruiken en geïsoleerd zijn met behulp van naamruimten en cgroups. Door het gebruik van virtuele machines kunt u een hoger beveiligingsniveau bereiken dat bescherming biedt tegen aanvallen veroorzaakt door misbruik van kwetsbaarheden in de Linux-kernel.

Kata Containers is gericht op integratie in bestaande containerisolatie-infrastructuren met de mogelijkheid om vergelijkbare virtuele machines te gebruiken om de bescherming van traditionele containers te verbeteren. Het project biedt mechanismen om de compatibiliteit van lichtgewicht virtuele machines met verschillende containerisolatie-infrastructuren, containerorkestratieplatforms en specificaties zoals OCI (Open Container Initiative), CRI (Container Runtime Interface) en CNI (Container Networking Interface) te garanderen. Er zijn tools beschikbaar voor integratie met Docker, Kubernetes, QEMU en OpenStack.

Uitgave van Kata Containers 3.0 met op virtualisatie gebaseerde isolatie

Integratie met containerbeheersystemen wordt bereikt met behulp van een laag die containerbeheer simuleert, die toegang krijgt tot de beherende agent in de virtuele machine via de gRPC-interface en een speciale proxy. Binnen de virtuele omgeving, die wordt gelanceerd door de hypervisor, wordt een speciaal geoptimaliseerde Linux-kernel gebruikt, die slechts de minimale set noodzakelijke mogelijkheden bevat.

Als hypervisor ondersteunt het het gebruik van Dragonball Sandbox (een editie van KVM geoptimaliseerd voor containers) met de QEMU-toolkit, evenals Firecracker en Cloud Hypervisor. De systeemomgeving omvat een initialisatiedaemon en een agent. De agent zorgt voor de uitvoering van door de gebruiker gedefinieerde containerimages in OCI-indeling voor Docker en CRI voor Kubernetes. Bij gebruik in combinatie met Docker wordt voor elke container een aparte virtuele machine gemaakt, d.w.z. De omgeving die bovenop de hypervisor draait, wordt gebruikt voor het genest starten van containers.

Uitgave van Kata Containers 3.0 met op virtualisatie gebaseerde isolatie

Om het geheugengebruik te verminderen, wordt het DAX-mechanisme gebruikt (directe toegang tot het bestandssysteem, het omzeilen van de paginacache zonder gebruik te maken van het blokapparaatniveau) en om identieke geheugengebieden te ontdubbelen, wordt KSM-technologie (Kernel Samepage Merging) gebruikt, waarmee u om het delen van hostsysteembronnen te organiseren en verbinding te maken met verschillende gastsystemen, deel een gemeenschappelijke systeemomgevingssjabloon.

In de nieuwe versie:

  • Er wordt een alternatieve runtime (runtime-rs) voorgesteld, die het vullen van containers vormt, geschreven in de Rust-taal (de eerder geleverde runtime was geschreven in de Go-taal). Runtime is compatibel met OCI, CRI-O en Containerd, waardoor het kan worden gebruikt met Docker en Kubernetes.
  • Er is een nieuwe Dragonball-hypervisor voorgesteld op basis van KVM en roest-vmm.
  • Ondersteuning toegevoegd voor het doorsturen van toegang tot de GPU met behulp van VFIO.
  • Ondersteuning toegevoegd voor cgroup v2.
  • Ondersteuning voor het wijzigen van instellingen zonder het hoofdconfiguratiebestand te wijzigen is geïmplementeerd door blokken in afzonderlijke bestanden in de map “config.d/” te vervangen.
  • Rust-componenten omvatten een nieuwe bibliotheek voor het veilig werken met bestandspaden.
  • De virtiofsd-component (geschreven in C) is vervangen door virtiofsd-rs (geschreven in Rust).
  • Ondersteuning toegevoegd voor het sandboxen van QEMU-componenten.
  • QEMU gebruikt de io_uring API voor asynchrone I/O.
  • Ondersteuning voor Intel TDX-extensies (Trusted Domain Extensions) is geïmplementeerd voor QEMU en Cloud-hypervisor.
  • Componenten bijgewerkt: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, Linux kernel 5.19.2.

Bron: opennet.ru

Voeg een reactie