Komuniteti Linux Containers publikoi një version të mjetit për organizimin e punës së kontejnerëve të izoluar LXC 6.0, që ofron një runtime të përshtatshëm për të dyja: lançimin e konteinerëve me një mjedis të plotë sistemor, të ngjashëm me makinat virtuale, dhe për ekzekutimin e konteinerëve të aplikacioneve të veçanta (OCI). LXC i përket mjeteve me nivel të ulët, që punojnë në nivelin e kontejnerëve individualë. Për menaxhimin qendror të kontejnerëve të shpërndarë në një klaster prej disa serverësh, mbi LXC po zhvillohen sistemet Incus dhe LXD. Dega LXC 6.0 është e klasifikuar si një version me mbështetje të gjatë, me përditësime që formohen gjatë 5 viteve (deri në vitin 2029). Kodi LXC është shkruar në gjuhën C dhe shpërndahet nën licencën GPLv2.
Në përbërje të LXC është biblioteka liblxc, një grup utilitetesh (lxc-create, lxc-start, lxc-stop, lxc-ls etj.), kallëpe për ndërtimin e konteinerëve dhe një grup lidhjesh për gjuhë të ndryshme programimi. Izolimi arrihet përmes mekanizmave standardë të bërthamës Linux. Për izolimin e proceseve, stekëve të rrjetit ipc, uts, identifikuesve të përdoruesve dhe pikave të montimit përdoret mekanizmi i hapësirave të emrave (namespaces). Për kufizimin e burimeve përdoren cgroups. Për uljen e privilegjeve dhe kufizimin e aksesit, angazhohen mundësitë e bërthamës, si profilët Apparmor dhe SELinux, politikat Seccomp, Chroots (pivot_root) dhe capabilities.
Ndryshimet kryesore:
- Kjo ofron mundësinë për të ndërtuar një skedar ekzekutiv universali lxc, që kombinon në një utilitet të gjitha komandat që më parë ishin shpërndarë si utilitete të veçanta "lxc-*". Për ndërtimin e skedarit të përmbledhur ekzekutiv, është propozuar opsioni "tools-multicall=true", me të cilin të gjitha utilitetet e vjetra krijohen si lidhje simbolike në utilitetin lxc. Ndërtimi në formën e një skedari ekzekutiv njëbësh lejon të reduktohet ndjeshëm konsumimi i hapësirës diskore nga mjete, që është e rëndësishme për sistemet e integruara.
- Bibliotekës liblxc i është shtuar funksioni set_timeout, i cili lejon vendosjen e një kohëzgjatjeje për të gjitha operacionet e ndërveprimit me LXC monitor.
- Në ndërfaqen e urave rrjetë lxcbr0, nga e gjithë aktivizimi i mbështetje IPv6 adresa nga nënrrjeti IPv6 ULA (Adresa Lokale Unike).
- Në utilitetin lxc-usernsexec janë shtuar opsionet "-u" dhe "-g" për të ndryshuar identifikuesit e përdoruesit dhe grupit (UID dhe GID).
- Në utilitetin lxc-checkconfig është siguruar shfaqja e versionit vetëm kur ekziston komanda lxc-start dhe janë shtuar informacione mbi numrin maksimal të pranueshëm të çdo lloji namespaci.
- Shtuar mbështetje për imazhet e kontejnerëve në formatin OCI, në të cilat informacioni komprehohet me FS Squashfs.
- Për ndërveprimin me systemd përmes D-Bus është përdorur një bibliotekë e veçantë libdbus-1 në vend të libsystemd.
- Mbështetja për sistemin e inicializimit Upstart është ndalur.
Doli u publikimin e projektit Incus, në kuadër të të cilit komuniteti i Linux Containers zhvillon një fork të sistemit të menaxhimit të konteinerëve LXD, të krijuar nga ekipi i vjetër i zhvilluesve, i cili dikur krijoi LXD. Kodi i Incus është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0. Incus 6.0 pozicionohet si dega e parë stabile për të cilën do të sigurohet një cikël i gjatë formimi i përditësimeve (LTS). Midis ndryshimeve në Incus 6.0, merret parasysh mundësia e krijimit të interfecive rrjetë përmes API bridge.external_interfaces, përmirësimi i mbështetjes për autentifikimin përmes JWT (JSON Web Token), mbështetje për USB dhe shfaqja e informacionit të detajuar sistemor në komandën "incus info --resources", mbështetje për versionin LXD 5.21 në utilitarin lxd-to-incus.
Incus dhe LXD ofrojnë mjete për menaxhimin e centralizuar të konteinerëve dhe makinave virtuale, të vendosura si në një host, ashtu edhe në një kluster prej disa serverësh. Projekti realizohet si një proces në sfond, i cili merr kërkesa përmes rrjeteve përmes REST API dhe mbështet ndryshme backend-e depozitimi (pema e drejtorive, ZFS, Btrfs, LVM), snapshot-e me një prerje gjendjeje, migrim në kohë reale të konteinerëve në funksion nga një makinë në tjetrën dhe mjete për ruajtjen e imazheve të konteinerëve. Si runtime për të filluar konteinerët përdoret mjeti LXC. Izolimi realizohet me ndihmën e mekanizmave standard të bërthamës Linux (hapësirat e emrave, cgroups, Apparmor, SELinux, Seccomp).
Komuniteti i Linux Containers ka mbikëqyrur zhvillimin e LXD deri sa kompania Canonical vendosi ta transformojë LXD në një projekt të korporatës. Qëllimi i fork-ut është ofrimi i një alternative të menaxhuar nga një komunitet të pavarur për projektin LXD, të cilin e kontrollon kompania Canonical. Krijimi i Incus gjithashtu solli mundësi për të adresuar disa gabime konceptuale, të cilat ishin bërë gjatë zhvillimit të LXD, të cilat më parë nuk mund të ishin korrigjuar pa shkelur përputhshmërinë e prapshme.
Kompania Canonical publikoi versionin e ri tĂ« sistemit tĂ« menaxhimit tĂ« kontejnerĂ«ve LXD 5.21.1. Dega LXD 5.21 Ă«shtĂ« markuar si LTS dhe do tĂ« mbĂ«shtetet deri nĂ« qershor 2029. Kodi i shtuar nĂ« LXD nga punonjĂ«sit e Canonical vjen nĂ«n licencĂ«n AGPLv3, por kodi i pjesĂ«marrĂ«sve tĂ« tjerĂ«, pĂ«r tĂ« cilin Canonical nuk ka tĂ« drejta pronĂ«sore, mbetet nĂ«n Apache 2.0. Ndryshimet funksionale nĂ« LXD 5.21.1 pĂ«rfshijnĂ« kalimin e paketĂ«s snap nga LXD nĂ« degĂ«t LXC 6.0 dhe LXCFS 6.0. API-ja ka marrĂ« njĂ« zgjerim storage_volumes_all dhe njĂ« trajtim tĂ« lidhur /1.0/storage_volumes pĂ«r tĂ« nxjerrĂ« njĂ« listĂ« me tĂ« gjitha seksionet e shStorage. ĂshtĂ« shtuar zgjerimi instances_files_modify_permissions pĂ«r tĂ« ndryshuar pĂ«rmes API tĂ« drejtat e aksesit nĂ« skedarĂ«t ekzistues.
ĂshtĂ« nĂ« dispozicion versioni virtual i FS LXCFS 6.0, i pĂ«rdorur pĂ«r simuluar nĂ« kontejnerĂ«t pseudo-FS /proc dhe /sys, si dhe pĂ«r njĂ« pamje tĂ« virtualizuar tĂ« cgroupfs pĂ«r distribucione qĂ« nuk mbĂ«shtesin hapĂ«sirat emĂ«rtimore tĂ« cgroup. NĂ« versionin e ri Ă«shtĂ« shtuar opsioni "--enable-cgroup", qĂ« lejon menaxhimin e aktivizimit tĂ« funksionalitetit tĂ« ndĂ«rtuar pĂ«r krijimin e njĂ« peme virtuale croupfs pĂ«r kontejnerĂ«t, duke pĂ«rdorur cgroupv1 (aktualisht shumica e distribucioneve mbĂ«shtesin hapĂ«sirat emĂ«rtimore tĂ« ofruara nga bĂ«rthama pĂ«r croup, kĂ«shtu qĂ« aktivizimi nga default i implementimit alternativ tĂ« ndĂ«rtuar ka humbur kuptim dhe tani Ă«shtĂ« opsional). PĂ«r mĂ« tepĂ«r, nĂ« LXCFS 6.0 Ă«shtĂ« ndaluar filtrimi i CPU-sĂ« gjatĂ« krijimit tĂ« skedarit /sys/devices/system/cpu, nĂ« varĂ«si tĂ« gjendjes online/offline.
Burimi: opennet.ru
