Prvo izdanje Incus-a, fork sustava za upravljanje kontejnerima LXD

Predstavljen je prvi izdanak projekta Incus, u okviru kojeg zajednica Linux Containers razvija fork sustava za upravljanje kontejnerima LXD, koji je stvorila stara ekipa developera koja je nekoć razvijala LXD. Kod Incusa napisan je na jeziku Go i distribuira se pod licencom Apache 2.0.

Podsjećamo, zajednica Linux Containers je upravljala razvojem LXD prije nego što je kompanija Canonical odlučila razvijati LXD kao zaseban korporacijski projekt. Cilj forka je pružiti upravljanu neovisnom zajednicom alternativu projektu LXD, koji je pod kontrolom kompanije Canonical. U okviru projekta Incus planira se također ispraviti neke konceptualne greške koje su napravljene tijekom razvoja LXD, a koje se prije nisu mogle ispraviti bez kršenja unazadne kompatibilnosti.

Incus pruža sredstva za centralizirano upravljanje kontejnerima i virtualnim strojevima, raspoređenim kako na jednom hostu, tako i u klasteru više. poslužitelja. Projekt je realiziran u obliku pozadinskog procesa koji prihvaća zahtjeve putem mreže putem REST API-a i podržava različite backendove pohrane (direktorijski sustav, ZFS, Btrfs, LVM), snimke stanja, live-migraciju radnih kontejnera s jednog stroja na drugi i alate za pohranu slika kontejnera. Kao runtime za pokretanje kontejnera koristi se alat LXC, koji uključuje biblioteku liblxc, skup alata (lxc-create, lxc-start, lxc-stop, lxc-ls itd.), predloške za izgradnju kontejnera i skup obveza za različite programske jezike. Izolacija se provodi pomoću ugrađenih mehanizama jezgre Linuxa (imenska prostora, cgroups, Apparmor, SELinux, Seccomp).

Po funkcionalnosti, prvi izdanak Incusa odgovara nedavno objavljenom ažuriranju LXD 5.18 i fokusiran je prije svega na preimenovanje i reorganizaciju koda, kao i na uklanjanje zastarjelih mogućnosti. Pri tome se u novoj verziji uočavaju i specifične za Incus promjene u sučelju naredbenog retka i API-ju, koje se nisu mogle uključiti u LXD zbog zahtjeva za osiguranje unazadne kompatibilnosti. U budućnosti, developeri planiraju prenositi korisna poboljšanja i ispravke iz baze koda LXD, te dodavati svoja originalna rješenja, koja će, ako kompanija Canonical želi, moći biti portirana u LXD.

Najistaknutije promjene:

  • Provodi se prelazak na ugrađeni SQL engine Cowsql — fork Dqlite, kojeg je stvorio izvorni autor Dqlite iz istih razloga kao i Incus (izlaženje ispod utjecaja Canonical-a). Cowsql je kompatibilan s SQLite-om, podržava repliciranje podataka, automatsko oporavljanje od kvarova i osiguranje otpornosti na kvarove raspoređivanjem handlera na više čvorova.
  • U sučelje naredbenog retka dodana je naredba „incus snapshot“ za upravljanje snimcima (zamjenjuje pojedinačne lxc naredbe snapshot i restore). Putem „incus snapshot“ mogu se pokretati operacije stvaranja, brisanja, prikazivanja popisa, preimenovanja i obnavljanja snimka.
  • Promijenjena je logika obrade naredbi „incus config trust add“ i „incus cluster add“ koje sada prihvaćaju jedan argument s imenom i vraćaju ispravni token. Operacije rada s certifikatom putem naredbe „incus config trust add“ premještene su u posebnu naredbu „incus config trust add-certificate“.
  • Dodana je naredba „incus admin“, koja je oslobodila administratora od potrebe da izravno pristupa naredbama lxc i lxd. Dostupne su sljedeće podnaredbe:
    • incus admin cluster
    • incus admin init
    • incus admin recover
    • incus admin shutdown
    • incus admin waitready
  • Uklonjene su zastarjele točke pristupa API-u /1.0/containers i /1.0/virtual-machines, a zamijenile su ih /1.0/instances.
  • Uređaj /dev/lxd zamijenjen je s /dev/incus, a spominjanja u kodu lxd zamijenjena su s incus.
  • Tip konfiguracije servera zamijenjen s „map[string]any“ na „map[string]string“. Zastarjeli metod autentifikacije core.trust_password (na mjesto je došla autentifikacija na bazi tokena), ometao je korištenje tipa „map[string]string“.
  • Zastarjele funkcije *Container su uklonjene iz API-a, a zamijenile su ih funkcije *Instance nakon implementacije upravljanja virtualnim strojevima (na primjer, umjesto CreateContainer treba koristiti CreateInstance).
  • Dodana je alatka lxd-to-incus za migraciju s LXD-a na Incus (podržano je automatsko pretvaranje konfiguracijskih datoteka, počevši od verzije LXD 4.0 i završavajući verzijom 5.18). Prijenos klastera za sada nije podržan.
  • Kao minimalno podržavana verzija jezika Go istaknut je izlazak 1.20.
  • Prekinuta je podrška za neke funkcionalnosti vezane uz Ubuntu ili ovisne o zastarjelom ili nepodržanom softveru:
    • Uklonjena je podrška za obavijesti Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), koje ovise o zakrpama jezgre korištenim samo u Ubuntu.
    • Podrška za shiftfs, vezanu uz pakete s kernelom za Ubuntu virtuelni FS za mapiranje točaka montiranja s prostorima imena identiteta korisnika (user namespace), je uklonjena.
    • Podrška za Candid sustav autentifikacije, specifičan za proizvode Canonical, je uklonjena.
    • Podrška za proprietarnu implementaciju mehanizma autentifikacije RBAC (Role Based Access Control), koju je Canonical stvorio na temelju Macaroonsa i Candid, je uklonjena.
    • Komponente za integraciju s MAAS (Metal-as-a-Service), alatima za brzo raspoređivanje konfiguracija Ubuntu, su uklonjene.
    • Koncept pristupa serveru uz pouzdanu lozinku (core.trust_password) je uklonjen.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster