Lansare uneltelor pentru gestionarea containerelor LXC 6.0, Incus 6.0 și LXD 5.21.1

Comunitatea Linux Containers a publicat versiunea 6.0 a instrumentului pentru organizarea funcționării containerelor izolate LXC, oferind un runtime potrivit atât pentru rularea containerelor cu un mediu de sistem complet, asemănătoare mașinilor virtuale, cât și pentru executarea containerelor neprivilegiate ale aplicațiilor individuale (OCI). LXC se încadrează în instrumentele de nivel inferior, funcționând la nivelul containerelor individuale. Pentru gestionarea centralizată a containerelor desfășurate într-un cluster de mai multe servere, sunt dezvoltate sisteme precum Incus și LXD bazate pe LXC. Rama LXC 6.0 este clasată ca o versiune suportată pe termen lung, actualizările pentru care sunt oferite timp de 5 ani (până în 2029). Codul LXC este scris în C și este distribuit sub licența GPLv2.

LXC include biblioteca liblxc, un set de utilitare (lxc-create, lxc-start, lxc-stop, lxc-ls etc.), șabloane pentru crearea containerelor și un set de legături pentru diferite limbaje de programare. Izolația este realizată cu ajutorul mecanismelor standard ale nucleului Linux. Pentru izolarea proceselor, stivei de rețea ipc, uts, identificatorilor de utilizator și punctelor de montare se utilizează mecanismul spațiilor de nume (namespaces). Pentru limitarea resurselor se aplică cgroups. Pentru reducerea privilegiilor și limitarea accesului sunt folosite funcționalitățile nucleului precum profilurile Apparmor și SELinux, politicile Seccomp, Chroots (pivot_root) și capabilities.

Modificări principale:

  • A fost oferită posibilitatea de a construi un fișier executabil universal lxc, care combină toate comenzile, anterior distribuite sub formă de utilitare separate «lxc-*», într-o singură utilitate. Pentru construirea fișierului executabil agregat a fost propusă opțiunea «tools-multicall=true», la activarea căreia toate utilitarele separate vechi sunt create ca linkuri simbolice către utilitarul lxc. Construirea sub formă de fișier executabil unic permite reducerea semnificativă a consumului de spațiu pe disc pentru instrument, ceea ce este relevant pentru sistemele încorporate.
  • În biblioteca liblxc a fost adăugată funcția set_timeout, care permite stabilirea unui timeout pentru orice operații de interacțiune cu monitorul LXC.
  • În interfața podurilor de rețea lxcbr0, este activată în mod implicit suportul IPv6 setarea adreselor din subrețeaua IPv6 ULA (Adresă Locală Unică).
  • În utilitarul lxc-usernsexec, au fost adăugate opțiunile «-u» și «-g» pentru schimbarea identificatorilor utilizatorului și grupului (UID și GID).
  • În utilitarul lxc-checkconfig, versiunea este afișată doar în prezența comenzii lxc-start, iar informațiile referitoare la numărul maxim permis pentru fiecare tip de spațiu de nume au fost adăugate.
  • A fost adăugat suport pentru imagini de containere în format OCI, în care informațiile sunt comprimate folosind sistemul de fișiere Squashfs.
  • Pentru interacțiunea cu systemd prin D-Bus, a fost utilizată o bibliotecă separată libdbus-1 în loc de libsystemd.
  • Suportul pentru sistemul de inițializare Upstart a fost oprit.

Odată cu aceasta, a fost publicată versiunea proiectului Incus, în cadrul căruia comunitatea Linux Containers dezvoltă un fork al sistemului de gestionare a containerelor LXD, creat de vechiul echipaj de dezvoltatori care a creat LXD. Codul Incus este scris în limbajul Go și este distribuit sub licența Apache 2.0. Incus 6.0 este prima versiune stabilă care va beneficia de un ciclu lung de actualizări (LTS). Printre modificările din Incus 6.0 se numără posibilitatea de a crea interfețe de rețea prin API bridge.external_interfaces, îmbunătățirea suportului pentru autentificarea prin JWT (JSON Web Token), suportul USB și afișarea detaliilor sistemului în comanda „incus info —resources”, precum și suportul pentru lansarea LXD 5.21 în utilitarul lxd-to-incus.

Incus și LXD oferă instrumente pentru gestionarea centralizată a containerelor și mașinilor virtuale, desfășurate atât pe un singur host, cât și într-un cluster format din mai multe. servereProiectul este implementat ca un proces în fundal, care primește cereri prin rețea prin REST API și suportă diferite backend-uri de stocare (arbore de directoare, ZFS, Btrfs, LVM), snapshots cu un instantaneu de stare, migrarea live a containerelor funcționale de pe o mașină pe alta și instrumente pentru stocarea imaginilor containerelor. Ca runtime pentru lansarea containerelor, se folosește instrumentarul LXC. Izolarea este realizată prin mecanismele standard ale kernel-ului Linux (spații de nume, cgroups, Apparmor, SELinux, Seccomp).

Comunitatea Linux Containers a gândit dezvoltarea LXD înainte ca compania Canonical să decidă să transforme LXD într-un proiect corporativ. Scopul fork-ului este de a oferi o alternativă gestionată de o comunitate independentă pentru proiectul LXD, controlat de compania Canonical. Crearea Incus a permis, de asemenea, remedierea unor erori conceptuale apărute la dezvoltarea LXD, care anterior nu puteau fi corectate fără a afecta compatibilitatea retroactivă.

Compania Canonical a publicat o nouă versiune a sistemului de gestionare a containerelor LXD 5.21.1. Ramura LXD 5.21 este marcată ca LTS și va fi susținută până în iunie 2029. Codul adăugat în LXD de către angajații Canonical este furnizat sub licența AGPLv3, dar codul participanților terți, asupra căruia Canonical nu deține drepturi de proprietate, rămâne sub Apache 2.0. Printre modificările funcționale aduse în LXD 5.21.1 se numără migrarea pachetului snap LXD pe ramurile LXC 6.0 și LXCFS 6.0. API-ul a fost extins cu storage_volumes_all și un handler asociat /1.0/storage_volumes pentru a genera o listă cu toate partițiile de stocare. A fost adăugat și storage_volumes_modify_permissions pentru a modifica prin API drepturile de acces la fișierele existente.

Este disponibilă versiunea virtuală de FS LXCFS 6.0, utilizată pentru simularea în containere a pseudo-FS /proc și /sys, precum și pentru prezentarea virtualizată a cgroupfs pentru distribuții fără suport pentru namespace-uri cgroup. Noua versiune a introdus opțiunea „—enable-cgroup”, care permite gestionarea activării funcționalității încorporate pentru a crea un arbore virtual croupfs pentru containere, folosind cgroupv1 (în prezent, majoritatea distribuțiilor suportă namespace-urile pentru cgroup furnizate de kernel, astfel încât activarea implicită a unei implementări alternative incorporate a devenit lipsită de sens și este acum opțională). În plus, LXCFS 6.0 a încetat filtrarea CPU-urilor atunci când se generează fișierul /sys/devices/system/cpu, în funcție de starea online/offline.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster