Випуск системи керування контейнерами LXC 5.0

Компанія Canonical опублікувала реліз інструментарію для організації роботи ізольованих контейнерів LXC 5.0, що надає runtime, що підходить як для запуску контейнерів з повним системним оточенням, близьких до віртуальних машин, так і для виконання непривілейованих контейнерів окремих додатків (OCI). LXC відноситься до низькорівневих інструментарій, що працюють на рівні окремих контейнерів. Для централізованого управління контейнерами, розгорнутими у кластері з кількох серверів, з урахуванням LXC розвивається система LXD. Гілка LXC 5.0 віднесена до випусків із тривалою підтримкою, оновлення для яких формуються протягом 5 років. Код LXC написаний мовою Сі та поширюється під ліцензією GPLv2.

До складу LXC входить бібліотека liblxc, набір утиліт (lxc-create, lxc-start, lxc-stop, lxc-ls тощо), шаблони для побудови контейнерів та набір біндингу для різних мов програмування. Ізоляція здійснюється за допомогою штатних механізмів ядра Linux. Для ізоляції процесів, мережевого стека ipc, uts, ідентифікаторів користувачів та точок монтування використовується механізм просторів імен (namespaces). Для обмеження ресурсів застосовуються групи. Для зниження привілеїв та обмеження доступу задіяні такі можливості ядра, як профілі Apparmor та SELinux, політики Seccomp, Chroots (pivot_root) та capabilities.

Основні зміни:

  • Здійснено перехід з autotools на збірну систему Meson, яка також використовується для складання таких проектів, як X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME та GTK.
  • Додано нові опції для налаштування cgroup — lxc.cgroup.dir.container, lxc.cgroup.dir.monitor, lxc.cgroup.dir.monitor.pivot та lxc.cgroup.dir.container.inner, які дозволяють явно визначити шляхи cgroup для контейнера, процес моніторингу та вкладених ієрархій cgroup.
  • Додано підтримку простору імен для часу (time namespaces) для прив'язки до контейнера окремого стану системного годинника, що дозволяє використовувати в контейнері свій час, відмінний від системного. Для налаштування запропоновані опції lxc.time.offset.boot та lxc.time.offset.monotonic, що дозволяють визначити для контейнера зміщення щодо основних системних годинників.
  • Для віртуальних ethernet-адаптерів (Veth) реалізовано підтримку VLAN. Для керування VLAN запропоновані опції: veth.vlan.id для завдання основного VLAN та veth.vlan.tagged.id для прив'язки додаткових тегованих VLAN.
  • Для віртуальних ethernet-адаптерів додано можливість налаштування розміру черг прийому та передачі за допомогою нових опцій veth.n_rxqueues та veth.n_txqueues.

Джерело: opennet.ru

Додати коментар або відгук