Kako namestiti, ustvariti in upravljati LXC v Ubuntu/Debian


V zadnjem desetletju je odprtokodna skupnost opazila stalen premik k kontejnerizaciji kot prednostnemu načinu uvajanja aplikacij zaradi številnih prednosti, ki jih ponuja, kot so prenosljivost, prilagodljivost, večja varnost in lažje upravljanje aplikacij. Priljubljene tehnologije kontejnerizacije vključujejo Docker, Podman in LXD.

LXD (izgovarja se kot Lekseed), napisan v jeziku Go, je opisan kot sistemski vsebnik in upravitelj navideznih strojev naslednje generacije, ki vam omogoča upravljanje svojih vsebnikov in navideznih strojev iz ukazne vrstice ali z uporabo REST API-ja ali drugih orodij tretjih oseb. LXD je odprtokodni projekt in je razširitev LXC (Linux Containers), ki je tehnologija virtualizacije na ravni OS.

LXC se je pojavil okoli leta 2008, LXD pa je bil predstavljen 7 let pozneje, leta 2015 z enakimi gradniki kot LXC. LXD je prišel, da bi posode naredili uporabniku prijaznejše in enostavnejše za upravljanje.

Kot razširitev LXC, LXD ponuja napredne funkcije, kot so posnetki in selitev v živo. Zagotavlja tudi demona, ki vam omogoča preprosto upravljanje vsebnikov in virtualnih strojev. Ni namenjen nadomestitvi LXC, temveč je namenjen izboljšanju uporabnosti in rokovanja z zabojniki na osnovi LXC

V tem priročniku bomo pokazali, kako lahko ustvarite in upravljate vsebnike LXC z uporabo LXD v Debian/Ubuntu.

1. korak: Namestite LXD na Ubuntu

Prvi korak je namestitev LXD. To lahko storite na dva načina, lahko namestite iz Ubuntujevega skladišča s pomočjo snap.

Z uporabo APT najprej posodobite sistem:

$ sudo apt update

Nato namestite hipervizor sistemskega vsebnika LXD, kot sledi.

$ sudo apt install lxd

S snap lahko namestite najnovejšo različico LXD.

$ sudo snap install lxd

Poleg tega lahko namestite najnovejšo izdajo LTS, ki je LXD 4.0, kot sledi:

$ sudo snap install lxd --channel=4.0/stable

Različico nameščenega LXD lahko preverite, kot je prikazano:

$ lxd --version

Če ste nekoč zaskočili, lahko preverite, ali je bil paket LXD snap nameščen, kot je prikazano:

$ snap list

2. korak: Inicializacija storitve LXD

Če želite inicializirati ali zagnati hipervizor vsebnika LXD, zaženite ukaz:

$ sudo lxd init

Ukaz vam predstavi vrsto vprašanj o tem, kako konfigurirati LXD. Privzete nastavitve delujejo v redu, vendar lahko določite svoje nastavitve glede na vaše zahteve.

V tem primeru smo ustvarili pomnilniško področje, imenovano tecmint_pool z datotečnim sistemom ZFS in upravljalnikom nosilcev. Za preostala vprašanja smo se odločili za privzete možnosti. Enostaven način za sprejetje privzete izbire je, da pritisnete gumb ENTER na tipkovnici.

Podatke potrdite tako, da zaženete ukaz:

$ sudo lxc profile show default

Lahko ga še dodatno zožite na ustvarjeno pomnilniško področje. Spodnji ukazi prikazujejo podrobnosti trenutnih pomnilniških področij.

$ sudo lxc storage list
$ sudo lxc storage show tecmint_pool

Prikažete lahko tudi informacije o omrežnem vmesniku, ki ga uporablja LXD, v tem primeru lxdbr0, ki je privzeta izbira.

$ sudo lxc network show lxdbr0

3. korak: Ustvarjanje LXD vsebnikov v Ubuntuju

Zdaj pa preklopimo in ustvarimo vsebnike Linuxa. Z ukazom lahko navedete vse vnaprej izdelane vsebnike, ki so na voljo za prenos:

$ sudo lxc image list images:

To zapolni ogromen seznam vseh vsebnikov v različnih operacijskih sistemih, kot so Ubuntu, CentOS, Debian in AlmaLinux, če jih omenim nekaj.

Lahko ga zožite na določeno distribucijo na naslednji način:

$ sudo lxc image list images: | grep -i centos
$ sudo lxc image list images: | grep -i debian

V tem primeru navajamo razpoložljive vsebnike.

$ sudo lxc image list images: | grep -i ubuntu

Zdaj bomo ustvarili naš prvi vsebnik. Sintaksa za ustvarjanje vsebnika je naslednja:

$ sudo lxc launch images:{distro}/{version}/{arch} {container-name}

Zdaj bomo ustvarili dva vsebnika iz Ubuntu 20 oziroma Debian 10:

$ sudo lxc launch images:ubuntu/focal tecmint-con1
$ sudo lxc launch images:debian/10 tecmint-con2

V zgornjih primerih smo ustvarili dva vsebnika: tecmint-con1 in tecmint-con2.

Če želite prikazati ustvarjene vsebnike, zaženite ukaz:

$ sudo lxc list

Iz izhoda lahko vidimo naša dva vsebnika na seznamu.

Če želite pridobiti dostop lupine do vsebnika LXC, zaženite ukaz:

$ sudo lxc exec tecmint-con1 bash

Ko pridobite dostop do lupine, opazite, da se poziv spremeni in nakazuje, da delujete kot root uporabnik.

Za izhod iz vsebnika zaženite ukaz:

$ exit

4. korak: Upravljanje vsebnikov LXD v Ubuntuju

Zdaj pa si oglejmo nekaj ukazov, ki jih lahko uporabite za upravljanje LXD vsebnikov.

Če želite prikazati vse delujoče vsebnike, zaženite ukaz:

$ sudo lxc list

Za prikaz podrobnih informacij o vsebniku LXC uporabite sintakso:

$ sudo lxc info container-name

To vam bo zagotovilo informacije, kot so ime vsebnika, arhitektura, datum ustvarjanja, stanje omrežnih vmesnikov, pasovna širina, CPE, pomnilnik in uporaba diska, da omenimo nekaj meritev.

Če želite ustaviti vsebnik LXC, uporabite sintakso:

$ sudo lxc stop container-name

Če želite na primer ustaviti vsebnik tecmint-con1, izvedite ukaz:

$ sudo lxc stop  tecmint-con1

Ponovno navedite vsebnike, da potrdite, da je bil vsebnik ustavljen.

$ sudo lxc list

Lahko pa tudi navedete tekoče ali ustavljene vsebnike na naslednji način:

$ sudo lxc list | grep -i STOPPED
$ sudo lxc list | grep -i RUNNING

Če želite zagnati vsebnik LXC, uporabite sintakso:

$ sudo lxc start container-name

Če želite na primer zagnati vsebnik tecmint-con1, zaženite ukaz:

$ sudo lxc start tecmint-con1

Vsebnike lahko zaženete ali ustavite tako, da jih obidete v enem ukazu, ločenem s presledkom, z uporabo naslednje sintakse:

$ sudo lxc stop container1 container2
$ sudo lxc start container1 container2

Če želite na primer ustaviti vse vsebnike, zaženite:

$ sudo lxc stop tecmint-con1 tecmint-con2

Če želite znova zagnati vsebnik LXC, uporabite sintakso:

$ sudo lxc restart container-name

Če želite na primer znova zagnati vsebnik tecmint-con1, zaženite ukaz:

$ sudo lxc restart tecmint-con1

Druga možnost je, da v enem ukazu posredujete več vsebnikov:

$ sudo lxc start container1 container2

Na primer, če želite znova zagnati vse vsebnike, zaženite:

$ sudo lxc restart tecmint-con1 tecmint-con2

Če želite izbrisati vsebnik LXC, ga najprej ustavite in nato izbrišite. Če želite na primer izbrisati vsebnik tecmint-con2, zaženite ukaz:

$ sudo lxc stop tecmint-con2
$ sudo lxc delete tecmint-con2

Ta vodnik vam je zagotovil trdne temelje o vsebnikih LXD in o tem, kako lahko zaženete, ustvarite in upravljate vsebnike. Upamo, da lahko zdaj brez večjih težav udobno zaženete in upravljate svoje zabojnike.