Выпуск Kata Containers 3.0 з ізаляцыяй на аснове віртуалізацыі

Пасля двух гадоў распрацоўкі апублікаваны выпуск праекту 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.

Kata Containers арыентаваны на інтэграцыю ў існуючыя інфраструктуры кантэйнернай ізаляцыі c магчымасцю прымянення падобных віртуальных машын для ўзмацнення абароны традыцыйных кантэйнераў. Праектам прадастаўляюцца механізмы для забеспячэння сумяшчальнасці легкаважных віртуальных машыны з рознымі інфраструктурамі кантэйнернай ізаляцыі, платформамі аркестроўкі кантэйнераў і спецыфікацыямі, такімі як OCI (Open Container Initiative), CRI (Container Runtime Interface) і CNI (Container Networking Interface). Даступныя сродкі для інтэграцыі з Docker, Kubernetes, QEMU і OpenStack.

Выпуск Kata Containers 3.0 з ізаляцыяй на аснове віртуалізацыі

Інтэграцыя з сістэмамі кіравання кантэйнерамі дасягаецца пры дапамозе праслойкі, якая сімулюе кіраванне кантэйнерам, якая праз gRPC-інтэрфейс і спецыяльны проксі звяртаецца да кіраўніка агенту ў віртуальнай машыне. Унутры віртуальнага асяроддзя, якое запускаецца гіпервізарам, выкарыстоўваецца спецыяльна аптымізаванае ядро ​​Linux, якое змяшчае толькі мінімальны набор неабходных магчымасцяў.

У якасці гіпервізара падтрымліваецца выкарыстанне Dragonball Sandbox (рэдакцыя KVM, аптымізаваная для кантэйнераў) з інструментарыем QEMU, а таксама Firecracker і Cloud Hypervisor. Сістэмнае асяроддзе складаецца з дэман ініцыялізацыі і агент (Аgent). Агент забяспечвае выкананне пэўных карыстальнікам вобразаў кантэйнера ў фармаце OCI для Docker і CRI для Kubernetes. Пры выкарыстанні сумесна з Docker для кожнага кантэйнера ствараецца асобная віртуальная машына, г.зн. якое запускаецца па-над гіпервізарам асяроддзе ўжываецца для ўкладзенага запуску кантэйнераў.

Выпуск Kata Containers 3.0 з ізаляцыяй на аснове віртуалізацыі

Для памяншэння спажывання памяці ўжываецца механізм DAX (прамы доступ да ФС у абыход старонкавага кэша без ужывання ўзроўня блокавых прылад), а для дэдуплікацыі аднолькавых абласцей памяці ўжываецца тэхналогія KSM (Kernel Samepage Merging), што дазваляе арганізаваць сумеснае выкарыстанне рэсурсаў хост-сістэмы і падлучыць да розным гасцявым сістэмам агульны шаблон сістэмнага асяроддзя.

У новай версіі:

  • Прапанаваны альтэрнатыўны 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.

Крыніца: opennet.ru

Дадаць каментар