Ukukhishwa Kweziqukathi ze-Kata 3.0 ngokuhlukaniswa okusekelwe ku-virtualization

ПослС Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Kata Containers 3.0, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ стСк для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с использованиСм изоляции Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ создан компаниями Intel ΠΈ Hyper ΠΏΡƒΡ‚Ρ‘ΠΌ объСдинСния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Clear Containers ΠΈ runV. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языках Go ΠΈ Rust, ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ рабочая Π³Ρ€ΡƒΠΏΠΏΠ°, созданная ΠΏΠΎΠ΄ эгидой нСзависимой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ OpenStack Foundation, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE ΠΈ ZTE.

ΠžΡΠ½ΠΎΠ²Ρƒ Kata составляСт runtime, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, выполняСмыС с использованиСм ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π°, вмСсто примСнСния Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰Π΅Π΅ ядро Linux ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ пространств ΠΈΠΌΡ‘Π½ ΠΈ cgroups. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокого уровня бСзопасности, Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… эксплуатациСй уязвимостСй Π² ядрС Linux.

I-Kata Containers igxile ekuhlanganisweni kuzingqalasizinda ezikhona zokuhlukanisa iziqukathi ezinekhono lokusebenzisa imishini efanayo ebonakalayo ukuthuthukisa ukuvikelwa kweziqukathi zendabuko. Le phrojekthi ihlinzeka ngezindlela zokuqinisekisa ukuhambisana kwemishini engasindi enezingqalasizinda ezahlukahlukene zokuhlukanisa iziqukathi, amapulatifomu e-orchestration ye-container kanye nokucaciswa okufana ne-OCI (Open Container Initiative), i-CRI (I-Container Runtime Interface) kanye ne-CNI (I-Container Networking Interface). Amathuluzi ayatholakala ukuze ahlanganiswe ne-Docker, Kubernetes, QEMU kanye ne-OpenStack.

Ukukhishwa Kweziqukathi ze-Kata 3.0 ngokuhlukaniswa okusekelwe ku-virtualization

Ukuhlanganiswa nezinhlelo zokuphatha iziqukathi kufinyelelwa kusetshenziswa isendlalelo esilingisa ukuphathwa kwesiqukathi, esifinyelela umenzeli ophethe emshinini obonakalayo ngokusebenzisa isixhumi esibonakalayo se-gRPC kanye nommeleli okhethekile. Ngaphakathi kwendawo ebonakalayo, eyethulwa yi-hypervisor, kusetshenziswa i-Linux kernel eyenziwe kahle, equkethe kuphela isethi encane yamakhono adingekayo.

Njenge-hypervisor, isekela ukusetshenziswa kwe-Dragonball Sandbox (uhlelo lwe-KVM olulungiselelwe iziqukathi) ngekhithi yamathuluzi ye-QEMU, kanye ne-Firecracker ne-Cloud Hypervisor. Indawo yesistimu ihlanganisa i-daemon yokuqalisa kanye ne-ejenti. Umenzeli uhlinzeka ngokusetshenziswa kwezithombe zesiqukathi esichazwe umsebenzisi ngefomethi ye-OCI ye-Docker ne-CRI ye-Kubernetes. Uma isetshenziswa ngokubambisana ne-Docker, umshini ohlukile we-virtual wenziwa esitsheni ngasinye, i.e. Indawo esebenza phezu kwe-hypervisor isetshenziselwa ukwethulwa kwesidleke kweziqukathi.

Ukukhishwa Kweziqukathi ze-Kata 3.0 ngokuhlukaniswa okusekelwe ku-virtualization

Ukuze kuncishiswe ukusetshenziswa kwememori, kusetshenziswa indlela ye-DAX (ukufinyelela okuqondile ohlelweni lwefayela, ukweqa inqolobane yekhasi ngaphandle kokusebenzisa izinga ledivayisi yokuvimba), kanye nokuphindaphinda izindawo ezifanayo zenkumbulo, kusetshenziswa ubuchwepheshe be-KSM (Kernel Samepage Merging), obuvumela ukuthi ukuhlela ukwabelana kwezinsiza zesistimu yokusingatha futhi uxhume kumasistimu wezihambeli ahlukene wabelane ngesifanekiso sendawo yesistimu evamile.

Enguqulweni entsha:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ runtime (runtime-rs), Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡ΠΈΠ½ΠΊΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², написанный Π½Π° языкС Rust (Ρ€Π°Π½Π΅Π΅ поставляСмый runtime написан Π½Π° языкС Go). Runtime совмСстим с OCI, CRI-O ΠΈ Containerd, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Docker ΠΈ Kubernetes.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ dragonball, основанный Π½Π° KVM ΠΈ rust-vmm.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° проброса доступа ΠΊ GPU, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ VFIO.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° cgroup v2.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ настроСк Π±Π΅Π· измСнСния основного Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΌΠ΅Π½Ρƒ Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«config.d/Β».
  • Π’ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… Π½Π° языкС Rust задСйствована новая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ путями.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ virtiofsd (написан Π½Π° Π‘ΠΈ) Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° virtiofsd-rs (написан Π½Π° Rust).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° sandbox-изоляции ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² QEMU.
  • Π’ QEMU для асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° задСйствован API io_uring.
  • Для QEMU ΠΈ Cloud-hypervisor Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Intel TDX (Trusted Domain Extensions).
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: QEMU 6.2.0, Cloud-hypervisor 26.0, Firecracker 1.1.0, ядро Linux 5.19.2.

Source: opennet.ru

Engeza amazwana