Wydanie Kata Containers 3.0 z izolacją opartą na wirtualizacji

Po dwóch latach prac rozwojowych opublikowano wersję projektu Kata Containers 3.0, która rozwija zestaw narzędzi do organizowania uruchamiania kontenerów z wykorzystaniem izolacji opartej na pełnych mechanizmach wirtualizacji. Projekt został stworzony przez firmy Intel i Hyper poprzez połączenie technologii Clear Containers oraz runV. Kod projektu napisano w językach Go i Rust i rozpowszechnia się na licencji Apache 2.0. Rozwój projektu nadzoruje grupa robocza powołana pod egidą niezależnej organizacji OpenStack Foundation, w której uczestniczą takie firmy jak Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE oraz ZTE.

Podstawą Kata jest runtime, który umożliwia tworzenie kompaktowych maszyn wirtualnych działających z wykorzystaniem pełnoprawnego hypervisora, zamiast stosować tradycyjne kontenery z użyciem wspólnego jądra Linux i izolowanych za pomocą przestrzeni nazw i cgroups. Zastosowanie maszyn wirtualnych pozwala na osiągnięcie wyższego poziomu bezpieczeństwa, chroniącego przed atakami wynikającymi z eksploatacji luk w jądrze Linux.

Kata Containers jest ukierunkowany na integrację z istniejącymi infrastrukturami izolacji kontenerów, z możliwością stosowania podobnych maszyn wirtualnych do wzmocnienia ochrony tradycyjnych kontenerów. Projekt oferuje mechanizmy zapewniające kompatybilność lekkich maszyn wirtualnych z różnymi infrastrukturami izolacji kontenerów, platformami orkiestracji kontenerów oraz specyfikacjami takimi jak OCI (Open Container Initiative), CRI (Container Runtime Interface) i CNI (Container Networking Interface). Dostępne są narzędzia do integracji z Dockerem, Kubernetes, QEMU i OpenStack.

Wydanie Kata Containers 3.0 z izolacją opartą na wirtualizacji

Integracja z systemami zarządzania kontenerami osiągana jest dzięki warstwie symulującej zarządzanie kontenerem, która przez interfejs gRPC oraz specjalny proxy komunikuje się z agentem zarządzającym w maszynie wirtualnej. W obrębie wirtualnego środowiska, które uruchamia hyperwizor, stosowane jest specjalnie zoptymalizowane jądro Linux, zawierające jedynie minimalny zestaw niezbędnych możliwości.

Jako hipernadzorca obsługiwany jest Dragonball Sandbox (wydanie KVM, zoptymalizowane pod kątem kontenerów) z narzędziami QEMU, a także Firecracker i Cloud Hypervisor. Środowisko systemowe obejmuje demona inicjalizacyjnego i agenta (Agent). Agent zapewnia uruchamianie obrazów kontenerów w formacie OCI dla Dockera i CRI dla Kubernetesa określonych przez użytkownika. Przy użyciu Dockera dla każdego kontenera tworzone jest oddzielne maszyna wirtualna, tzn. uruchamiane na hipernadzorze środowisko jest stosowane do zagnieżdżonego uruchamiania kontenerów.

Wydanie Kata Containers 3.0 z izolacją opartą na wirtualizacji

Aby zmniejszyć zużycie pamięci, wdrożono mechanizm DAX (bezpośredni dostęp do systemu plików z pominięciem pamięci podręcznej stron bez wykorzystywania poziomu urządzeń blokowych), a do deduplikacji powtarzających się obszarów pamięci stosowana jest technologia KSM (Kernel Samepage Merging), co pozwala na zorganizowanie wspólnego wykorzystania zasobów systemu gospodarza i podłączenie do różnych systemów gościnnych wspólnego szablonu środowiska systemowego.

W nowej wersji:

  • Zaproponowano alternatywny runtime (runtime-rs), który tworzy zawartość kontenerów, napisany w języku Rust (wcześniej dostarczany runtime był napisany w języku Go). Runtime jest zgodny z OCI, CRI-O i Containerd, co pozwala na jego użycie z Dockerem i Kubernetesem.
  • Zaproponowano nowy hypervisor dragonball, oparty na KVM i rust-vmm.
  • Dodano wsparcie dla przekazywania dostępu do GPU z wykorzystaniem VFIO.
  • Dodano wsparcie dla cgroup v2.
  • Zaimplementowano wsparcie dla modyfikacji ustawień bez zmiany głównego pliku konfiguracyjnego poprzez zastępowanie bloków w odrębnych plikach umieszczonych w katalogu „config.d/”.
  • W komponentach napisanych w języku Rust użyto nowej biblioteki do bezpiecznej pracy z ścieżkami plików.
  • Komponent virtiofsd (napisany w C) zastąpiono virtiofsd-rs (napisanym w Rust).
  • Dodano wsparcie dla izolacji sandbox komponentów QEMU.
  • W QEMU dla asynchronicznego wejścia/wyjścia wykorzystano API io_uring.
  • Dla QEMU i Cloud-hypervisor wprowadzono wsparcie rozszerzeń Intel TDX (Trusted Domain Extensions).
  • Zaktualizowano komponenty: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, jądro Linux 5.19.2.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster