Com instal·lar, crear i gestionar LXC a Ubuntu/Debian


Durant l'última dècada, la comunitat de codi obert ha vist un canvi constant cap a la contenidorització com la forma preferida de desplegar aplicacions gràcies als nombrosos avantatges que ofereix, com ara la portabilitat, la flexibilitat, l'augment de la seguretat i la gestió més fàcil d'aplicacions. Les tecnologies de contenidorització populars inclouen Docker, Podman i LXD.

Escrit en llenguatge Go, LXD (pronunciat com a Lekseed) es descriu com el gestor de contenidors i màquines virtuals del sistema de nova generació que us permet gestionar els vostres contenidors i màquines virtuals des de la línia d'ordres, o aprofitant una API REST o altres eines de tercers. LXD és un projecte de codi obert i és una extensió de LXC (Linux Containers), que és una tecnologia de virtualització a nivell del sistema operatiu.

LXC va entrar en escena al voltant de 2008, i LXD es va llançar 7 anys més tard, el 2015 amb els mateixos blocs de construcció que LXC. LXD va arribar a fer els contenidors més fàcils d'utilitzar i fàcils de gestionar.

En ser una extensió de LXC, LXD ofereix funcions avançades com ara instantànies i migració en directe. També proporciona un dimoni que us permet gestionar fàcilment contenidors i màquines virtuals. No pretén suplantar LXC, sinó que té com a objectiu millorar la usabilitat i la manipulació dels contenidors basats en LXC.

En aquesta guia, demostrarem com podeu crear i gestionar contenidors LXC mitjançant LXD a Debian/Ubuntu.

Pas 1: instal·leu LXD a Ubuntu

El primer pas és instal·lar LXD. Hi ha dues maneres de fer-ho, podeu instal·lar-lo des del dipòsit d'Ubuntu mitjançant el complement.

Amb APT, primer actualitzeu el sistema:

$ sudo apt update

A continuació, instal·leu l'hipervisor de contenidors del sistema LXD de la següent manera.

$ sudo apt install lxd

Amb snap, podeu instal·lar la darrera versió de LXD.

$ sudo snap install lxd

A més, podeu instal·lar la darrera versió de LTS que és LXD 4.0 de la següent manera:

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

Podeu verificar la versió de LXD instal·lada tal com es mostra:

$ lxd --version

Si abans feies l'ajustament, pots verificar que el paquet d'ajustament LXD s'ha instal·lat tal com es mostra:

$ snap list

Pas 2: inicialització del servei LXD

Per inicialitzar o iniciar l'hipervisor del contenidor LXD, executeu l'ordre:

$ sudo lxd init

L'ordre us presenta un conjunt de preguntes sobre com configurar LXD. Els valors predeterminats funcionen bé, però teniu la llibertat d'especificar la vostra pròpia configuració segons els vostres requisits.

En aquest exemple, hem creat una agrupació d'emmagatzematge anomenada tecmint_pool amb el sistema de fitxers ZFS i el gestor de volums. Per a la resta de preguntes, hem optat per anar amb les opcions predeterminades. Una manera senzilla d'acceptar la selecció predeterminada és prémer el botó INTRO al teclat.

Confirmeu la informació proporcionada executant l'ordre:

$ sudo lxc profile show default

Podeu reduir-lo encara més a l'agrupació d'emmagatzematge creat. Les ordres següents mostren detalls de les agrupacions d'emmagatzematge actuals.

$ sudo lxc storage list
$ sudo lxc storage show tecmint_pool

També podeu mostrar informació sobre la interfície de xarxa que utilitza LXD, en aquest cas, lxdbr0, que és la selecció predeterminada.

$ sudo lxc network show lxdbr0

Pas 3: Creació de contenidors LXD a Ubuntu

Ara, canviem de marxa i creem contenidors Linux. Podeu llistar tots els contenidors preconstruïts que es poden descarregar mitjançant l'ordre:

$ sudo lxc image list images:

Això omple una llista enorme de tots els contenidors de diversos sistemes operatius com Ubuntu, CentOS, Debian i AlmaLinux, per esmentar-ne alguns.

Podeu reduir-lo a una distribució específica de la següent manera:

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

En aquest exemple, estem llistant els contenidors disponibles.

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

Ara, anem a crear el nostre primer contenidor. La sintaxi per crear un contenidor és la següent:

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

Ara crearem dos contenidors des d'Ubuntu 20 i Debian 10 respectivament:

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

En els exemples anteriors, hem creat dos contenidors: tecmint-con1 i tecmint-con2.

Per llistar els contenidors creats, executeu l'ordre:

$ sudo lxc list

Des de la sortida, podem veure els nostres dos contenidors llistats.

Per obtenir accés de shell a un contenidor LXC, executeu l'ordre:

$ sudo lxc exec tecmint-con1 bash

Un cop hàgiu obtingut l'accés a l'intèrpret d'ordres, observeu que el missatge canvia per indicar que esteu executant com a usuari root.

Per sortir del contenidor, executeu l'ordre:

$ exit

Pas 4: gestió de contenidors LXD a Ubuntu

Ara, mirem algunes de les ordres que podeu utilitzar per gestionar contenidors LXD.

Per llistar tots els contenidors en execució, executeu l'ordre:

$ sudo lxc list

Per mostrar informació detallada sobre un contenidor LXC, utilitzeu la sintaxi:

$ sudo lxc info container-name

Això us proporcionarà informació com ara el nom del contenidor, l'arquitectura, la data de creació, l'estat de les interfícies de xarxa, l'ample de banda, la CPU, la memòria i l'ús del disc per esmentar algunes mètriques.

Per aturar un contenidor LXC, utilitzeu la sintaxi:

$ sudo lxc stop container-name

Per exemple, per aturar el contenidor tecmint-con1, executeu l'ordre:

$ sudo lxc stop  tecmint-con1

De nou, enumereu els contenidors per confirmar que el contenidor s'ha aturat.

$ sudo lxc list

Alternativament, podeu llistar els contenidors en funcionament o aturats de la següent manera:

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

Per iniciar un contenidor LXC, utilitzeu la sintaxi:

$ sudo lxc start container-name

Per exemple, per iniciar el contenidor tecmint-con1 executeu l'ordre:

$ sudo lxc start tecmint-con1

Podeu iniciar o aturar els contenidors sense passar-los en una ordre separat per un espai utilitzant la sintaxi següent:

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

Per exemple, per aturar tots els contenidors, executeu:

$ sudo lxc stop tecmint-con1 tecmint-con2

Per reiniciar un contenidor LXC, utilitzeu la sintaxi:

$ sudo lxc restart container-name

Per exemple, per reiniciar el contenidor tecmint-con1 executeu l'ordre:

$ sudo lxc restart tecmint-con1

Alternativament, podeu passar diversos contenidors en una sola ordre:

$ sudo lxc start container1 container2

Per exemple, per reiniciar tots els contenidors, executeu:

$ sudo lxc restart tecmint-con1 tecmint-con2

Per suprimir un contenidor LXC, primer, atureu-lo i després suprimiu-lo. Per exemple, per eliminar el contenidor tecmint-con2, executeu l'ordre:

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

Aquesta guia us ha proporcionat una base sòlida sobre els contenidors LXD i com podeu llançar, crear i gestionar contenidors. Esperem que ara pugueu llançar i gestionar còmodament els vostres contenidors sense gaire dificultat.