Esimene Incuse projekti väljaanne on tutvustatud, mille raames arendab Linux Containers Community LXD konteinerihaldussüsteemi hargnemist, mille lõid endised LXD arendajad. Incuse kood on kirjutatud Go keeles ja see on litsentseeritud Apache 2.0 alusel.
Tuletame meelde, et Linux Containers Community hallas LXD arendust enne, kui Canonical otsustas arendada LXD eraldi ettevõtte projektina. Hargnemise eesmärk on pakkuda iseseisvalt hallatavat alternatiivi Canonicali kontrolli all olevale LXD projektile. Incuse projekti raames on kavandatud ka mõningate LXD arendamisel tehtud kontseptuaalsete vigade kõrvaldamine, mida ei saanud varem parandada, rikkumata tagasipöörduvust.
Incus pakub vahendeid konteinerite ja virtuaalsete masinate tsentraliseeritud haldamiseks, mis on juurutatud nii ühel hostil kui ka mitme hosti klastris. serverite. Projekt on realiseeritud taustateenusena, mis võtab võrgus vastu päringuid REST API kaudu ning toetab erinevaid salvestusbackend'e (kaustapuu, ZFS, Btrfs, LVM), olekusnapshoot'e, töötavate konteinerite elussidumist ühest masinast teise ning konteineripiltide salvestamise vahendeid. Konteinerite käitamiseks kasutatakse LXC tööriistakomplekti, mis sisaldab raamatukogu liblxc, tööriistu (lxc-create, lxc-start, lxc-stop, lxc-ls jne), konteinerite loomise šablone ja erinevate programmeerimiskeelte sidumisvahendeid. Isolatsioon toimub Linuxi tuuma sisseehitatud mehhanismide abil (nimetamisruumid, cgroups, Apparmor, SELinux, Seccomp).
Funktsionaalsuselt vastab esimene Incus väljaanne hiljuti välja antud LXD 5.18 uuendusele, keskendudes eelkõige koodibaasi ümbernimetamisele ja reorganiseerimisele ning vananenud funktsioonide eemaldamisele. Samuti toob uus versioon välja Incus’ile iseloomulikud muudatused käsurea ja API liideses, mida LXD-sse tagasiühilduvuse nõuete tõttu lisada ei suutnud. Edaspidi plaanivad arendajad LXD koodibaasist kasulikud täiustused ja parandused üle kanda, lisades ka oma originaalsed uuendused, mis vajadusel saavad Canonicali poolt LXD-sse portida.
Olulisemad muudatused:
- On toimunud üleminek sisseehitatud SQL-mootorile Cowsql — Dqlite fork, mille lõi Dqlite algne autor samadel põhjustel nagu Incus (väljajätmine Canonicali mõjust). Cowsql on ühilduv SQLite'ga, toetab andmete replikatsiooni, automaatset taaste pärast rikkeid ja tagab tõrkeotsingu mitme sõlme vahelise jagamise kaudu.
- Käsk «incus snapshot» on lisatud käsureale, et hallata snapshot'e (asendab eraldi lxc käsud snapshot ja restore). Käsu «incus snapshot» kaudu saab käivitada snapshot'i loomise, kustutamise, loetlemise, ümbernimetamise ja taastamise toimingud.
- Muudetud on käskude «incus config trust add» ja «incus cluster add» töötlemise loogikat, mis nüüd võtavad vastu ühe argumendi nime ja tagastavad õige tokeni. Sertifikaadiga seotud toimingud käsu «incus config trust add» kaudu on viidud eraldi käsu «incus config trust add-certificate» alla.
- Lisa käsk «incus admin», vabastades administraatori vajadusest pöörduda otse lxc ja lxd käskude poole. Saadaval on järgmised alamkäsklused:
- incus admin cluster
- incus admin init
- incus admin recover
- incus admin shutdown
- incus admin waitready
- Vanad API punkti viidud «/1.0/containers» ja «/1.0/virtual-machines» on asendatud «/1.0/instances».
- Seade «/dev/lxd» on asendatud «/dev/incus»-ga, kõik lxd koodis esinevad viidatud on asendatud incus'ega.
- Tüüp serveri seadistused muudetud «map[string]any»-st «map[string]string»-ks. Vananenud autentimismeetod core.trust_password on kõrvaldatud (diiteeritud on tokenipõhised autentimismeetodid), mis takistas «map[string]string» tüübi kasutamist.
- API-st on eemaldatud vananenud funktsioonid *Container, mille asemel on virtuaalsete masinate haldamise rakendamise järel tulnud funktsioonid *Instance (näiteks CreateContainer asemel tuleks kasutada CreateInstance).
- Lisatud on tööriist lxd-to-incus, mis võimaldab migratsiooni LXD-lt Incusele (automaatne konfigureerimisfailide teisendamine on toetatud alates LXD versioonist 4.0 kuni 5.18). Klastrite üleviimist ei toetata veel.
- Go keele minimaalne toetatav versioon on 1.20.
- Toetamine on lõpetatud mõne funktsiooni osas, mis on seotud Ubuntu või vananenud või mitte-toetatud tarkvaraga:
- Toetamine on eemaldatud Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type) ümbersõitudest, mis sõltuvad Ubuntu ainulaadsetest kerni patšidest.
- Toetamine on eemaldatud shiftfs-ist, mis on seotud Ubuntu kerneliga, et luua virtuaalne failisüsteem, mis kaardistab montaažipunkte kasutaja identifikaatori ruumide (user namespace) vahel.
- Toetamine on eemaldatud Candid autentimisest, mis on spetsiifiline Canonicali toodetele.
- Toetamine on eemaldatud Canonicali loodud RBAC (Role Based Access Control) autentimismehhanismi patenteeritud rakendusele, mis põhineb Macaroons'il ja Candid'il.
- Eemaldatud komponendid MAAS-iga (Metal-as-a-Service) integreerimiseks, tööriistad Ubuntu konfiguratsioonide kiireks juurutamiseks.
- Eemaldatud usaldusväärse parooli (core.trust_password) kaudu serverisse pääsemise kontseptsioon.
Allikas: opennet.ru
