Esitati esimene versioon projekti Incus, kus Linux Containersi kogukond arendab LXD konteinerihaldussĂŒsteemi fork'i, mille lĂ”i endine arendajate meeskond, kes kunagi LXD vĂ€lja töötas. Incuse kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel.
KÀ Erinner, et Linux Containers kogukond oli LXD arenduse eestvedaja, kuni Canonical otsustas arendada LXD-d eraldi ettevÔtte projektina. Haru eesmÀrk on pakkuda sÔltumatu kogukonna haldatud alternatiivi Canonicali kontrolli all olevale LXD projektile. Incus projekti raames on plaanis lahendada ka mÔned LXD arendamisel tehtud kontseptuaalsed vead, mida ei saanud varem parandada vastavust rikkumata.
Incus pakub vahendeid konteinerite ja virtuaalmasinate keskseks haldamiseks, mis on paigaldatud nii ĂŒhele hostile kui ka mitme hosti klastrisse. serverid. Projekt on realiseeritud taustaprotsessina, mis aktsepteerib pĂ€ringuid ĂŒle vĂ”rgu REST API kaudu ja toetab erinevaid salvestusbackende (kaustapuu, ZFS, Btrfs, LVM), seisundilĂ”ike snĂ€pĆĄoteid, töötavate konteinerite elumigratsiooni ĂŒhest seadmest teise ning konteineripiltide salvestusvahendeid. Konteinerite kĂ€itamiseks kasutatakse LXC tööriistakomplekti, mille koosseisu kuulub liblxc raamatukogu, utiliidid (lxc-create, lxc-start, lxc-stop, lxc-ls jne), konteinerite loomiseks mĂ”eldud mallid ja erinevatele programmeerimiskeeltele mĂ”eldud liidesed. Isolatsiooni teostatakse Linuxi tuuma standardmehhanismide (nimetuste ruumid, cgroups, AppArmor, SELinux, Seccomp) abil.
Funksionaalselt vastab esimene Incuse versioon hiljuti vĂ€lja antud LXD 5.18 uuendusele, keskendudes peamiselt koodibaasi ĂŒmbernimetamisele ja korraldamisele, samuti vananenud funktsioonide eemaldamisele. Samuti mĂ€rgitakse, et Incuse uues versioonis on kĂ€skude rea ja API-d tĂ€iendavad muudatused, mida ei saanud LXD-sse lisada tagurpidi ĂŒhilduvuse nĂ”uete tĂ”ttu. Edasi kavatsevad arendajad tuua LXD koodibaasist kasulikke tĂ€iustusi ja parandusi, lisades ka oma originaalsed uuendused, mis vajadusel saavad Canonicali poolt LXD-sse edastatud.
KÔige olulisemad muudatused:
- Muutus on toimunud Cowsqli, sisseehitatud SQL-mootori, mis on Dqlite fork ja mille lĂ”i Dqlite originaalauthor sama pĂ”hjusel nagu Incus (vabanev Canonicali mĂ”just). Cowsql on SQLite'iga ĂŒhilduv, toetab andmete replikatsiooni, automaatset taastumist ja tagab tĂ”rke taluvuse, jagades töötlejad erinevatele sĂ”lmede.
- KĂ€skude reas on lisatud kĂ€sk "incus snapshot" sprieks snope, asendades eraldi lxc kĂ€skude snapshot ja restore. âIncus snapshotâ kaudu saab alustada tegevusi, nagu loomine, kustutamine, nimekirja kuvamine, ĂŒmbernimetamine ja taastamine.
- Muudetud on kĂ€skude "incus config trust add" ja "incus cluster add" töötlusloogikat, mis nĂŒĂŒd vĂ”tavad vastu ĂŒhe argumento nimega ja tagastavad korrektsed tokenid. Sertifikaadiga seotud toimingud kĂ€skluse "incus config trust add" kaudu on viidud eraldi kĂ€sku "incus config trust add-certificate".
- Lisatud on kĂ€sk âincus adminâ, mis vabastab administraatori vajadusest otse lxc ja lxd kĂ€skude loomise jĂ€rele. Saadaval on jĂ€rgmised alammehed:
- incus admin cluster
- incus admin init
- incus admin recover
- incus admin shutdown
- incus admin waitready
- Kustutatud on vananenud API juurde pÀÀsemise punktid "/1.0/containers" ja "/1.0/virtual-machines", mis on asendatud "/1.0/instances".
- Seade "/dev/lxd" on asendatud "/dev/incus", koodis esinevad lxd-ist viidatud on asendatud incus-iga.
- TĂŒĂŒp serveri konfiguratsiooni asendatud «map[string]any» peale «map[string]string». Eemaldatud vananenud autentimise meetod core.trust_password (asendatud tokenipĂ”hise autentimisega), mis takistas «map[string]string» tĂŒĂŒbi kasutamist.
- API-st on eemaldatud vananenud funktsioonid *Container, mille asemel on virtuaalmasinate haldamise rakendamise jÀrel tulnud funktsioonid *Instance (nÀiteks CreateContainer asemel tuleb kasutada CreateInstance).
- Lisatud utiliit lxd-to-incus migratsiooniks LXD-st Incus-esse (toetatakse automaatset konfiguratsioonifailide ĂŒmberkonverteerimist alates LXD versioonist 4.0 kuni 5.18). Klastri ĂŒleviimist praegu ei toetata.
- Minimaalse toetatud Go keele versioonina on vÀlja kuulutatud 1.20.
- MÔnede Ubuntu-ga seotud vÔi vananenud vÔi mitte toetatud tarkvaraga seotud vÔimaluste tugi on lÔpetatud:
- Eemaldatud on Ubuntu Fan-i wrapper'id (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), mis sÔltusid kernelipatch'idest, mida kasutati ainult Ubuntu's.
- Eemaldatud on shiftfs-i tugi, mis oli seotud Ubuntu tuumapaketiga, et kaardistada mount-punktid kasutaja ruumide identifikaatorite (user namespace) vahel.
- Eemaldatud on autentimissĂŒsteemi Candid tugi, mis on spetsiifiline Canonicali toodetele.
- Eemaldatud on Cannonicali loodud omandiÔiguslik rakendus RBAC (Role Based Access Control) autentimismehhanismi, mis pÔhineb Macaroons'il ja Candid'il.
- Eemaldatud on MAAS (Metal-as-a-Service) integreerimise komponendid, tööriistade kogum Ubuntu konfiguratsioonide kiireks juurutamiseks.
- Eemaldatud on usaldusvÀÀrset parooli (core.trust_password) kasutades serverisse sisenemise kontseptsioon.
Allikas: opennet.ru
