Выпуск інструментара кіравання кантэйнерамі LXC і LXD 4.0

Кампанія Canonical апублікавала рэліз інструментара для арганізацыі працы ізаляваных кантэйнераў LXC 4.0, мэнэджэра кантэйнераў LXD 4.0 і віртуальнай ФС LXCFS 4.0 для сімуляцыі ў кантэйнерах /proc, /sys і віртуалізаванага падання cgroupfs для дыстрыбутываў без падтрымай прастор імёнаў для cgroup. Галінка 4.0 аднесена да выпускаў з працяглай падтрымкай, абнаўленні для якіх фармуюцца на працягу 5 гадоў

LXC уяўляе сабой runtime для запуску як сістэмных кантэйнераў, так і кантэйнераў для асобных прыкладанняў (OCI). У склад LXC уваходзіць бібліятэка liblxc, набор утыліт (lxc-create, lxc-start, lxc-stop, lxc-ls і да т.п.), шаблоны для пабудовы кантэйнераў і набор біндзінгаў для розных моў праграмавання. Ізаляцыя ажыццяўляецца пры дапамозе штатных механізмаў ядра Linux. Для ізаляцыі працэсаў, сеткавага стэка ipc, uts, ідэнтыфікатараў карыстачоў і кропак мантавання выкарыстоўваецца механізм прастор імёнаў (namespaces). Для абмежавання рэсурсаў прымяняюцца cgroups. Для зніжэння прывілеяў і абмежаванні доступу задзейнічаны такія магчымасці ядра, як профілі Apparmor і SELinux, палітыкі Seccomp, Chroots (pivot_root) і capabilities. Код LXC напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй GPLv2.

LXD уяўляе сабой надбудову над LXC, CRIU і QEMU, якая ўжываецца для цэнтралізаванага кіравання кантэйнерамі і віртуальнымі машынамі на адным або некалькіх серверах. Калі LXC з'яўляецца нізкаўзроўневым інструментаром для маніпуляцыі на ўзроўні асобных кантэйнераў, то LXD рэалізаваны ў выглядзе фонавага працэсу, які прымае запыты па сетцы праз REST API і дазваляе ствараць маштабуюцца канфігурацыі, разгорнутыя на кластары з некалькіх сервераў.
Падтрымліваюцца розныя бэкэнды сховішчаў (дрэва дырэкторый, ZFS, Btrfs, LVM), снапшоты са зрэзам стану, live-міграцыя працавальных кантэйнераў з адной машыны на іншую і сродкі для арганізацыі сховішчы выяў. Код LXD напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0.

ключавыя паляпшэння у LXC 4.0:

  • Цалкам перапісаны драйвер для працы з cgroup. Дададзена падтрымка уніфікаванай іерархіі cgroup (cgroup2). Дададзена функцыянальнасць кантролера freezer, пры дапамозе якога можна спыніць працу ў cgroup і часова вызваліць некаторыя рэсурсы (CPU, увод/выснова і патэнцыйна нават памяць) для выканання іншых задач;
  • Рэалізавана інфраструктура для перахопу сістэмных выклікаў;
  • Дададзена падтрымка падсістэмы ядра "pidfd", прызначанай для апрацоўкі сітуацыі з паўторным выкарыстаннем PID (pidfd злучаецца з пэўным працэсам і не змяняецца, у той час як PID можа быць прывязаны да іншага працэсу пасля завяршэння бягучага працэсу, асацыяванага з гэтым PID);
  • Палепшана стварэнне і выдаленне сеткавых прылад, а таксама іх перасоўванні паміж прасторамі імёнаў сеткавай падсістэмы;
  • Рэалізавана магчымасць перамяшчэння бесправадных сеткавых прылад (nl80211) у кантэйнеры.

ключавыя паляпшэння у LXD 4.0:

  • Дададзена падтрымка запуску не толькі кантэйнераў, але і віртуальных машын;
  • Для сегментавання сервераў LXD прапанавана канцэпцыя праектаў, якія спрашчаюць кіраванне групамі кантэйнераў і віртуальных машын. Кожны праект можа ўключаць свой набор кантэйнераў, віртуальных машын, вобразаў, профіляў і раздзелаў захоўвання. У прывязцы да праектаў можна задаваць свае абмежаванні і мяняць налады;
  • Дададзена падтрымка перахопу сістэмных выклікаў для кантэйнераў;
  • Рэалізавана стварэнне рэзервовых копій акружэнняў і аднаўленне з іх;
  • Забяспечана аўтаматызаванае стварэнне снапшотаў акружэнняў і раздзелаў сховішчаў з магчымасцю задання часу існавання снапшота;
  • Дададзены API для маніторынгу за станам сеткі (lxc network info);
  • Дададзена падтрымка shiftfs, віртуальнай ФС для супастаўлення кропак мантавання з прасторамі імёнаў ідэнтыфікатараў карыстальнікаў (user namespace);
  • Прапанаваны новыя тыпы сеткавых адаптараў "ipvlan" і "routed";
  • Дададзены бэкенд для выкарыстання сховішчаў на базе CephFS;
  • Для кластараў рэалізавана падтрымка рэплікацыі вобразаў і шматархітэктурыны канфігурацый;
  • Дададзена магчымасць кіравання доступам на аснове роляў (RBAC);
  • Дададзена падтрымка CGroup2;
  • Дададзена магчымасць настройкі MAC-адрасу і вызначэння адраса крыніцы для NAT;
  • Дададзены API для кіравання прывязкамі ў DHCP (leases);
  • Дададзена падтрымка Nftables.

Крыніца: opennet.ru

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