ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ Π»Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° 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.
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.
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