Prima lansare a Incus, un fork al sistemului de gestionare a containerelor LXD

A fost lansată prima versiune a proiectului Incus, în cadrul căruia comunitatea Linux Containers dezvoltă un fork al sistemului de gestionare a containerelor LXD, creat de vechea echipă de dezvoltatori care a creat odinioară LXD. Codul Incus este scris în Go și este distribuit sub licența Apache 2.0.

Reamintim că comunitatea Linux Containers a supervizat dezvoltarea LXD înainte ca compania Canonical să decidă să dezvolte LXD separat ca un proiect de întreprindere. Scopul fork-ului este de a oferi o alternativă gestionată de o comunitate independentă la proiectul LXD, controlat de compania Canonical. În cadrul proiectului Incus se planifică, de asemenea, corectarea unor erori conceptuale care au fost făcute în dezvoltarea LXD, care anterior nu puteau fi remediate fără a afecta compatibilitatea inversă.

Incus 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 de mai multe. servere. Proiectul este implementat sub forma unui proces de fundal care primește solicitări prin rețea prin REST API și sprijină diferite backend-uri de stocare (arbore de directoare, ZFS, Btrfs, LVM), snapshot-uri cu tăierea stării, migrarea live a containerelor în funcțiune de pe o mașină pe alta și instrumente pentru stocarea imaginilor containerelor. Ca runtime pentru rularea containerelor este folosit setul de instrumente LXC, care include biblioteca liblxc, un set de utilitare (lxc-create, lxc-start, lxc-stop, lxc-ls etc.), șabloane pentru construirea containerelor și un set de legături pentru diferite limbaje de programare. Izolarea se realizează prin mecanismele standard ale nucleului Linux (spații de nume, cgroups, Apparmor, SELinux, Seccomp).

În funcționalitate, prima versiune a Incus corespunde actualizării recent lansate LXD 5.18 și este axată în principal pe renaming și reorganizarea codului de bază, precum și pe eliminarea funcțiilor învechite. De asemenea, în noua versiune se evidențiază și modificările specifice pentru Incus în interfața liniei de comandă și API, care nu au putut fi incluse în LXD din cauza cerințelor de asigurare a compatibilității inverse. În continuare, dezvoltatorii intenționează să transfere din codul sursă LXD îmbunătățiri utile și corecții, adăugând și inovațiile originale ale lor, care, la dorința companiei Canonical, ar putea fi portate în LXD.

Cele mai notabile schimbări:

  • A fost implementat un motor SQL încorporat Cowsql — un fork Dqlite, creat de autorul inițial al Dqlite din aceleași motive ca și Incus (ieșirea de sub influența Canonical). Cowsql este compatibil cu SQLite, suportă replicarea datelor, recuperarea automată după erori și asigurarea redundanței prin dispersarea procesatorilor pe mai multe noduri.
  • În interfața liniei de comandă a fost adăugată comanda „incus snapshot” pentru gestionarea snapshot-urilor (înlocuiește comenzile separate lxc snapshot și restore). Prin „incus snapshot” pot fi lansate operațiuni de creare, ștergere, vizualizare a listei, redenumire și recuperare a snapshot-ului.
  • Logica de prelucrare a comenzilor „incus config trust add” și „incus cluster add” a fost modificată, acestea acceptând acum un singur argument cu numele și returnând un token corect. Operațiile de gestionare a certificatului prin comanda „incus config trust add” au fost transferate într-o comandă separată „incus config trust add-certificate”.
  • A fost adăugată comanda „incus admin”, care a scutit administratorul de necesitatea de a accesa direct comenzile lxc și lxd. Sunt disponibile următoarele subcomenzi:
    • incus admin cluster
    • incus admin init
    • incus admin recover
    • incus admin shutdown
    • incus admin waitready
  • Au fost eliminate punctele de acces API învechite /1.0/containers și /1.0/virtual-machines, fiind înlocuite cu /1.0/instances.
  • Dispozitivul /dev/lxd a fost înlocuit cu /dev/incus, iar referințele din cod la lxd au fost înlocuite cu incus.
  • Tip al configurației serverului a fost schimbat de la „map[string]any” la „map[string]string”. Metoda de autentificare învechită core.trust_password (înlocuită cu autentificarea bazată pe token-uri) a împiedicat utilizarea tipului „map[string]string”.
  • Funcțiile învechite *Container au fost eliminate din API, fiind înlocuite, după implementarea gestionării mașinilor virtuale, cu funcțiile *Instance (de exemplu, în loc de CreateContainer, trebuie folosit CreateInstance).
  • A fost adăugată utilitarul lxd-to-incus pentru migrarea de la LXD la Incus (se suportă conversia automată a fișierelor de configurare, începând cu versiunea LXD 4.0 și terminând cu 5.18). Transferul clusterelor nu este încă susținut.
  • Ca versiune minimă suportată a limbajului Go, a fost declarată lansarea 1.20.
  • Suportul pentru anumite funcții legate de Ubuntu sau dependente de software învechit sau neîntreținut a fost oprit:
    • Suportul pentru legăturile Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), care depind de patch-uri pentru kernel, utilizate numai în Ubuntu, a fost eliminat.
    • Suportul pentru shiftfs, legat de pachetele cu nucleul pentru Ubuntu, a fost eliminat din virtualizarea FS pentru a asocia punctele de montare cu spațiile numelui utilizatorilor (user namespace).
    • Suportul pentru sistemul de autentificare Candid, specific produselor Canonical, a fost eliminat.
    • A fost eliminat suportul pentru implementarea proprietară a mecanismului de autentificare RBAC (Controlul Accesului Bazat pe Rol), creat de Canonical pe baza Macaroons și Candid.
    • Componentele pentru integrarea cu MAAS (Metal-as-a-Service), un instrument pentru desfășurarea rapidă a configurațiilor Ubuntu, au fost eliminate.
    • Conceptul de acces la server cu o parolă de încredere (core.trust_password) a fost eliminat.

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