Asenna LXC (Linux Containers) RHEL:iin, Rockyyn ja AlmaLinuxiin


LXD on kuvattu seuraavan sukupolven kontti- ja virtuaalikoneenhallintaohjelmaksi, joka tarjoaa mukaansatempaavan sovelluksen Linux-järjestelmiin, jotka toimivat säilöissä tai virtuaalikoneena.

Se tarjoaa kuvia kohtuuttoman suurelle määrälle Linux-jakeluja ja tukee laajaa valikoimaa tallennustaustaohjelmia ja verkkotyyppejä. Se tarjoaa myös mahdollisuuden asentaa kuvat yksittäiselle tietokoneelle/kannettavalle ja jopa pilvi-instanssille.

LXD antaa sinun hallita säilöjä ja virtuaalikoneita kolmella tavalla. Voit hyödyntää lxc-asiakasohjelmaa tai komentorivityökalua, REST-sovellusliittymää tai jopa kolmannen osapuolen integraatioita.

LXD-ominaisuudet

Huomattavia LXD-ominaisuuksia ovat:

  • LXD on kuvapohjainen kuvilla laajalle valikoimalle Linux-jakeluja.
  • Se on rakennettu siten, että turvallisuus on etusijalla.
  • Se tarjoaa REST API- ja lxc-komentorivityökalun vuorovaikutukseen säiliöiden kanssa.
  • Se tarjoaa tukea laajalle valikoimalle tallennustaustaohjelmia, tallennustilavuuksia ja tallennusvarastoja.
  • Verkonhallinta tapahtuu siltaverkkojen ja isäntien välisten tunneleiden luomisella.
  • Edistynyt resurssien, kuten suorittimen, RAM:n, levyn käytön, lohko-I/O- ja ydinresurssien hallinta.
  • Joustava ja skaalautuva – Voit ottaa kontteja käyttöön tietokoneellasi ja määrittää klusterin, joka voi yhdistää tuhansia säilöjä eri solmuissa.

Mikä on LXC?

Ei pidä sekoittaa LXD:n tarjoamaan lxc-komentorivityökaluun, mutta LXC (Linux Container) on suosittu käyttöjärjestelmätason virtualisointitekniikka, joka käyttää tehokasta APIa ja muita työkaluja, joiden avulla käyttäjät voivat luoda ja hallita saumattomasti säilöjä ja virtuaalikoneita yhdessä isännässä. Se sisältää malleja, työkalujen kielen ja kirjastosidoksia.

LXC:n ominaisuudet

LXC hyödyntää seuraavia ytimen ominaisuuksia prosessien käsittelyssä:

  • Ytimen nimitilat: pid, mount, uts-verkko ja käyttäjä.
  • CGroups (kontrolliryhmät).
  • Chroots – Pivot_rootin käyttö.
  • Seccompin käytännöt.
  • SELinux- ja Apparmor-profiilit.

Linuxcontainers.org on kattoprojekti sekä LXD:n että LXC:n takana. Sen tavoitteena on tarjota jakelu- ja toimittajaneutraali alusta Linux-konttiteknologialle.

Kun tämä esittely on poissa tieltä, näytämme nyt, kuinka LXC-säilöjä luodaan ja hallitaan RHEL-pohjaisissa Linux-jakeluissa, kuten CentOS, Rocky Linux,< ja AlmaLinux.

Vaatimukset

Toimiva Linux-käyttöjärjestelmä minimaalisella asennuksella:

  • RHEL Linuxin asennus
  • CentOS Linuxin asennus
  • Rocky Linuxin asennus
  • AlmaLinuxin asennus

Vaihe 1: Aseta SELinux sallivaan tilaan

Aloitamme heti määrittämällä SELinuxin ja asettamalla sen sallivaksi. Mutta ennen kuin teemme niin, päivitetään järjestelmäpaketit seuraavasti:

sudo dnf update

Aseta SELinux sallivaksi suorittamalla komento:

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Jotta tämä tulee voimaan, käynnistä palvelin uudelleen.

sudo reboot

Ja vahvista SELinuxin tila.

getenforce

Vaihe 2: Asenna EPEL Repository

EPEL on Fedora-projektin arkisto, joka tarjoaa joukon korkealaatuisia paketteja RedHat Enterprise Linuxille ja muille RHEL-pohjaisille jakeluille.

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
sudo yum install epel-release

Vaihe 3: Lisää ytimen parametrit

Ennen LXD:n asentamista tarvitaan joitain lisäparametreja. Vaihda siis root-käyttäjäksi:

su -

Ja lisää parametrit seuraavasti.

grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

Kun parametrit ovat paikoillaan, jatka ja ota Snap käyttöön.

Vaihe 4: Asenna ja ota Snap käyttöön

Yksinkertaisin tapa asentaa LXD RHEL 8:aan on asentaa se snap -pakettina. Mutta ensin asennetaan snap seuraavasti.

sudo dnf install snapd

Tämä asentaa snapd-daemonin tai -palvelun muiden Python-riippuvuuksien rinnalle kuvan mukaisesti.

Kun snap on asennettu, jatka ja ota snap-pääviestintäpistoke käyttöön.

sudo systemctl enable --now snapd.socket

Ota lisäksi käyttöön klassinen tuki luomalla symbolilinkki osoitteesta /var/lib/snapd/snap kohtaan /snap.

sudo ln -s /var/lib/snapd/snap  /snap

Päivitä napsautuspolut käynnistämällä järjestelmä uudelleen.

sudo reboot

Vaihe 5: Asenna LXD Containerization Manager

On kaksi tapaa asentaa LXD snap -sovelluksella. Voit asentaa LXD:n uusimman version kuvan osoittamalla tavalla.

sudo snap install —-classic lxd

Vaihtoehtoisesti voit asentaa uusimman vakaan LTS-version seuraavasti:

sudo snap install lxd --channel=4.0/stable

Jotta voit suorittaa lxc-komentoja vaihtamatta sudo-käyttäjään, lisää tällä hetkellä sisäänkirjautunut käyttäjä lxd-ryhmään.

sudo usermod -aG lxd $USER

Varmista, että käyttäjä on lisätty lxd-ryhmään luettelemalla kaikki ryhmät, joihin käyttäjä kuuluu.

groups tecmint

Suorita seuraavaksi newgrp-komento seuraavasti.

newgrp lxd

Komento muuttaa nykyisen ryhmätunnuksen kirjautumisistunnon aikana. Se asettaa nykyisen ryhmätunnuksen nimettyyn ryhmään, joka on lxd.

Vaihe 6: LXD-ympäristön alustaminen

Ennen kuin alamme luoda ja hallita LXD-säilöjä, meidän on alustettava LXD-ympäristö suorittamalla komento.

lxc init

Seuraavassa on sarja kehotteita, joiden avulla voit määrittää ympäristösi. Oletusasetukset toimivat hienosti, mutta voit vapaasti määrittää omat asetuksesi.

Olemme luoneet tallennusvaraston nimeltä tec-pool ja lvm-vaihtoehto taustapalvelimena.

Voit tarkistaa juuri määrittämäsi LXD-ympäristön käyttämällä useita komentoja. Esimerkiksi, jos haluat näyttää oletusarvoisen LXD-profiilin, suorita:

lxc profile show default

Voit näyttää verkkosovittimet sekä IPv4- ja IPv6-osoitteet suorittamalla:

lxc network list

Voit tarkentaa sitä edelleen ja näyttää tarkempia tietoja lxdbr0-käyttöliittymästä seuraavasti.

lxc network show lxdbr0

Voit myös tarkistaa tallennusaltaan.

lxc storage list

Saat lisää monimutkaisia tietoja varastoaltaasta.

lxc storage show tec-pool

Listaa käynnissä olevat lxc-säilöt suorittamalla komento:

lxc list

Tällä hetkellä meillä ei ole vielä yhtään käynnissä olevaa konttia. Joten saat tyhjän taulukon, jossa on vain sarakeotsikot.

Vaihe 7: Valmiiksi rakennettujen LXC-säiliökuvien luettelointi

Aivan kuten Docker, LXC-alusta tarjoaa valmiiksi rakennettujen kuvien arkiston, joista voit luoda säilöjä. Listaaksesi kaikki esivalmistetut kuvat kaikille käyttöjärjestelmille, mukaan lukien virtuaalikoneet, suorita komento:

lxc image list images: 

Tämä täyttää valtavan luettelon säilökuvista ja virtuaalikoneista kaikille käyttöjärjestelmille. Rajataksesi tiettyyn Linux-jakeluun käytä syntaksia:

lxc image list images: grep -i os-type

Jos haluat esimerkiksi etsiä saatavilla olevia kuvia Rocky Linuxille, suorita komento:

lxc image list images: grep -i rocky

Jos etsit Debian-kuvia, suorita komento:

lxc image list images: grep -i debian

Vaihe 8: LXC-säiliöiden käynnistäminen

Käynnistä lxc-säilöt käyttämällä syntaksia:

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

Tässä julkaisemme kaksi konttia: tec-container1 Debian 10:stä ja tec-container2 Rocky Linux 8:sta .

lxc launch images:debian/10/amd64 tec-container1
lxc launch images:rockylinux/8/amd64 tec-container2 

Listaa lxc-säilöt suorittamalla komento:

lxc list

Tulos näyttää joukon tietoja säilöistä. Tämä sisältää säilöjen nimet, tilan – käynnissä tai pysäytettynä – IPv4- ja IPv6-osoitteet, tyypin (joko säilö tai virtuaalikone) ja joukon tilannekuvia.

Jos haluat luetteloida vain käynnissä olevia säilöjä, suorita komento:

lxc list | grep -i running

Samoin suorita pysäytetyille säilöille:

lxc list | grep -i stopped

Voit tutkia säilön tietoja ja mittareita, kuten käynnissä olevia prosesseja, suorittimen ja muistin käyttöä sekä kaistanleveyttä mainitakseni muutamia komennolla:

lxc info tec-container1 

Vaihe 9: Hanki Shell-pääsy LXC-säiliöön

Voit saada bash-käyttöoikeuden säilöön käyttämällä syntaksia:

lxc exec container-name  name-of-the-shell

Saadaksesi shell-käyttöoikeuden tec-container1-sovellukseen suoritamme komennon:

lxc exec tec-container1 bash

Kun olet saanut shell-käyttöoikeuden, voit aloittaa vuorovaikutuksen säilön kanssa pääkäyttäjänä suorittamalla yleisiä komentotulkkikomentoja, mukaan lukien päivittämällä järjestelmän kuvan osoittamalla tavalla:

apt update

Poistu säilöstä suorittamalla komento:

exit

Vaihtoehtoisesti voit suorittaa komennot suoraan säilössä ilman, että käytät komentotulkkia seuraavassa muodossa:

lxc exec container-name command

Voit esimerkiksi suorittaa seuraavat komennot, jotka päivittävät pakettiluettelot, tarkistavat Debian-säilön käyttöjärjestelmän version ja päivämäärän.

lxc exec tec-container1 apt update
lxc exec tec-container1 cat /etc/debian_version
lxc exec tec-container1 date

Vaihe 10: Vedä/työnnä tiedosto(t) LXC-säilöyn

Toinen toiminto, jonka voit suorittaa, on siirtää tiedostoja säilöön ja sieltä pois. Tämän osoittamiseksi luomme uuden hakemiston LXD-säilöön ja siirrymme siihen.

mkdir data && cd data

Seuraavaksi luomme mallitiedoston ja lisäämme tietoja. Tätä varten luomme esimerkkitiedoston vim-editorilla

vim file1.txt

Seuraavaksi kirjoitamme mallitekstiä ja tallennamme tiedoston.

Hello World, Welcome to LXD containers.

Vedäksemme tiedoston säilöstä paikalliseen isäntäjärjestelmään käytämme syntaksia:

lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}

Tässä tapauksessa komento on:

lxc file pull tec-container2/root/data/file1.txt /home/tecmint

Voit työntää tai kopioida tiedoston paikallisesta hakemistosta säilöön käyttämällä syntaksia:

lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/

Tässä tapauksessa kotihakemistossa on esimerkkitiedosto nimeltä file2.txt, joka kopioidaan /root/data/-polkuun tec-container2<. kontti.

lxc file push /home/tecmint/file2.txt tec-container2/root/data/

Varmistaaksemme tiedoston olemassaolon säilössä suoritamme:

lxc exec tec-container2 ls /root/data

Vaihe 11: Pysäytä/käynnistä/käynnistä uudelleen ja poista LXC-säiliöt

lxc-komentorivityökalulla voit suorittaa säilöjen hallintatehtäviä, kuten pysäyttää, käynnistää, käynnistää uudelleen ja poistaa säilöjä.

Pysäytä lxc-säilö käyttämällä syntaksia:

lxc stop container-name

Jos esimerkiksi lopetamme tec-container1, suoritamme komennon:

lxc stop tec-container1

Käynnistä lxc-säilö käyttämällä syntaksia:

lxc start container-name

Esimerkiksi käynnistääksesi tec-container1, suoritamme:

lxc start tec-container1

Käynnistämme molemmat lxc-säilöt uudelleen suorittamalla komennon:

lxc restart tec-container1
lxc restart tec-container2

Jos haluat poistaa lxc-säilön, sinun on ensin pysäytettävä säilö ja sen jälkeen poistettava se. Esimerkiksi, jos haluat poistaa, suoritamme komennot:

lxc stop tec-container1
lxc delete tec-container1

Vaihtoehtoisesti voit yhdistää nämä kaksi komentoa kuvan mukaisesti.

lxc stop tec-container1 && lxc delete tec-container1

Vaihe 12: Hanki apua LXC-komentorivivaihtoehdoista

Saat ohjeita muihin LXC:n komentovaihtoehtoihin suorittamalla komento:

lxc --help
OR
lxc command --help e.g
lxc file --help

Johtopäätös

Tämä oli syvällinen sukellus LXD-säilöihin ja siihen, miten voit luoda ja hallita niitä lxc-komentorivityökalulla. Luotamme siihen, että tästä oppaasta oli apua.