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

Апублікаваны выпуск праекта Kata Containers 3.2, які развівае стэк для арганізацыі выканання кантэйнераў з выкарыстаннем ізаляцыі на базе паўнавартасных механізмаў віртуалізацыі. Праект створаны кампаніямі 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.

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

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

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

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

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

  • Апроч падтрымкі архітэктуры AMD64 (x86_64) забяспечана фармаванне рэлізаў для архітэктур ARM64 (Aarch64) і s390 (IBM Z). У распрацоўцы знаходзіцца падтрымка архітэктуры ppc64le (IBM Power).
  • Для арганізацыі доступу да вобразаў кантэйнераў задзейнічана файлавая сістэма Nydus 2.2.0, у якой выкарыстоўваецца адрасаванне па змесціве для эфектыўнай сумеснай працы з тыпавымі вобразамі. Nydus падтрымлівае загрузку выяў на лета (загружае толькі пры ўзнікненні неабходнасці), забяспечвае дэдуплікацыю паўтаральных дадзеных і можа выкарыстоўваць розныя бэкэнды для фактычнага захоўвання. Прадастаўляецца сумяшчальнасць з POSIX (па аналогіі з Composefs, рэалізацыя Nydus сумяшчае магчымасці OverlayFS c EROFS або FUSE-модулем).
  • У асноўны склад праекту Kata Containers інтэграваны мэнэджар віртуальных машын Dragonball, які зараз будзе развівацца ў агульным рэпазітары.
  • Ва ўтыліту kata-ctl дададзена адладкавая функцыя для падлучэння да віртуальнай машыны з хост-акружэнні.
  • Пашыраны магчымасці па кіраванні GPU і дададзеная падтрымка пракіду GPU у кантэйнеры для канфідэнцыйных вылічэнняў (Confidential Container), у які забяспечваецца шыфраванне дадзеных, памяці і станы выканання для абароны ў выпадку кампраметацыі хост-акружэнні ці гіпервізара.
  • У Runtime-rs дададзеная падсістэма кіравання прыладамі, выкарыстоўванымі ў кантэйнерах ці sandbox-акружэннях. Падтрымліваецца праца з vfio, блокавымі, сеткавымі і іншымі тыпамі прылад.
  • Забяспечана сумяшчальнасць з OCI Runtime 1.0.2 і Kubernetes 1.23.1.
  • У якасці ядра Linux рэкамендавана выкарыстоўваць выпуск 6.1.38 з патчамі.
  • Распрацоўка пераведзена з выкарыстання сістэмы бесперапыннай інтэграцыі Jenkins на GitHub Actions.

Крыніца: opennet.ru

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