GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte LXC (Linux Containers) v RHEL, Rocky &AlmaLinux

LXD je popsán jako správce kontejnerů a virtuálních strojů nové generace, který nabízí pohlcující možnosti pro systémy Linux běžící uvnitř kontejnerů nebo jako virtuální stroje.

Poskytuje obrazy pro nepřeberné množství linuxových distribucí s podporou širokého výběru backendů úložiště a typů sítí. Poskytuje také možnost instalace obrazů na jednotlivé PC/laptopy a dokonce i na cloudovou instanci.

LXD umožňuje spravovat kontejnery a virtuální počítače třemi způsoby. Můžete využít lxc klienta nebo nástroj příkazového řádku, REST API nebo dokonce integrace třetích stran.

Funkce LXD

Pozoruhodné LXD funkce zahrnují:

  • LXD je založen na obrázcích s obrázky pro široký výběr distribucí Linuxu.
  • Je vytvořen s nejvyšší prioritou zabezpečení.
  • Poskytuje REST API a nástroj příkazového řádku lxc pro interakci s kontejnery.
  • Poskytuje podporu pro širokou škálu backendů úložiště, svazků úložiště a fondů úložiště.
  • Správa sítě spočívá ve vytváření mostních sítí a tunelů mezi hostiteli.
  • Pokročilé řízení zdrojů, jako je CPU, RAM, využití disku, blokové I/O a prostředky jádra.
  • Flexibilní a škálovatelné – můžete na svém počítači nasadit kontejnery a nakonfigurovat cluster, který dokáže agregovat tisíce kontejnerů na různých uzlech.

Co je LXC?

Nezaměňujte s lxc klientský nástroj příkazového řádku poskytovaný LXD , LXC (Linuxový kontejner ) je populární virtualizační technologie na úrovni operačního systému, která využívá výkonné rozhraní API a další nástroje, které uživatelům umožňují bezproblémově vytvářet a spravovat kontejnery a virtuální stroje v jediném hostiteli. Zahrnuje šablony, jazyk nástrojů a vazby knihoven.

Funkce LXC

LXC využívá následující funkce jádra ke zpracování procesů:

  • Jmenné prostory jádra:pid, mount, síť uts a uživatel.
  • CGroups (kontrolní skupiny).
  • Chroots – pomocí pivot_root.
  • Zásady Seccomp.
  • Profily SELinux a Apparmor.

Linuxcontainers.org je zastřešujícím projektem za oběma LXD a LXC . Jeho cílem je nabídnout distribuci a na dodavatele neutrální platformu pro technologie kontejnerů Linux.

S tímto úvodem z cesty si nyní ukážeme, jak vytvořit a spravovat LXC kontejnery na linuxových distribucích založených na RHEL, jako je CentOS , Rocky Linux a AlmaLinux .

Požadavky

Funkční operační systém Linux s minimální instalací:

  • Instalace RHEL Linux
  • Instalace CentOS Linux
  • Instalace Rocky Linux
  • Instalace AlmaLinux

Krok 1:Nastavte SELinux na Permisivní režim

Hned od začátku začneme konfigurací SELinux a nastavte jej na permisivní. Ale než tak učiníme, aktualizujme systémové balíčky následovně:

$ sudo dnf update

Chcete-li nastavit SELinux pro povolení spusťte příkaz:

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

Aby se to projevilo, restartujte server.

$ sudo reboot

A potvrďte stav SELinux .

$ getenforce

Krok 2:Instalace úložiště EPEL

EPEL je úložiště z Projektu Fedora který poskytuje sadu vysoce kvalitních balíčků pro RedHat Enterprise Linux a další distribuce založené na RHEL.

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

Krok 3:Přidejte parametry jádra

Než nainstalujeme LXD , jsou vyžadovány některé další parametry. Proto přepněte na uživatele root:

$ su -

A přidejte parametry následovně.

$ 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

Jakmile jsou parametry nastaveny, pokračujte a povolte Snap.

Krok 4:Nainstalujte a povolte Snap

Nejjednodušší způsob instalace LXD na RHEL 8 je nainstalovat jej jako snap balík. Nejprve však nainstalujme snap následovně.

$ sudo dnf install snapd

Tím se nainstaluje snapd démon nebo služba spolu s dalšími závislostmi Pythonu, jak je znázorněno.

S nainstalovaným snapem pokračujte a povolte hlavní snap komunikační zásuvka.

$ sudo systemctl enable --now snapd.socket

Kromě toho povolte klasickou podporu vytvořením symbolického odkazu z /var/lib/snapd/snap na /snap .

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

Chcete-li aktualizovat snap cesty, restartujte systém.

$ sudo reboot

Krok 5:Nainstalujte LXD Containerization Manager

LXD lze nainstalovat dvěma způsoby z snímku . Můžete nainstalovat nejnovější verzi LXD jak je uvedeno.

$ sudo snap install —-classic lxd

Případně můžete nainstalovat nejnovější stabilní LTS verze takto:

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

Aby bylo možné spustit lxc příkazy bez přepnutí na uživatele sudo, přidejte aktuálně přihlášeného uživatele do lxd skupina.

$ sudo usermod -aG lxd $USER

Ověřte, zda byl uživatel přidán do lxd group výpisem všech skupin, do kterých uživatel patří.

$ groups tecmint

Dále spusťte newgrp příkaz takto.

$ newgrp lxd

Příkaz změní aktuální ID skupiny během relace přihlášení. Nastaví aktuální ID skupiny na pojmenovanou skupinu, která je lxd .

Krok 6:Inicializace prostředí LXD

Než začneme vytvářet a spravovat LXD kontejnery, musíme inicializovat LXD prostředí spuštěním příkazu.

$ lxc init

Následuje řada výzev, které vám umožní nastavit vaše prostředí. Výchozí nastavení bude fungovat dobře, ale můžete zadat své vlastní preference.

Vytvořili jsme úložiště s názvem tec-pool pomocí lvm možnost jako backend.

Chcete-li ověřit LXD V prostředí, které jste právě nakonfigurovali, existuje řada příkazů, které můžete použít. Chcete-li například zobrazit výchozí profil LXD, spusťte:

$ lxc profile show default

Zobrazení síťových adaptérů a IPv4 a IPv6 adresy, spusťte:

$ lxc network list

Můžete jej dále zúžit a zobrazit jemnější informace o lxdbr0 rozhraní následovně.

$ lxc network show lxdbr0

Můžete také ověřit fond úložiště.

$ lxc storage list

Můžete dále získat složité podrobnosti o fondu úložiště.

$ lxc storage show tec-pool

Chcete-li vypsat spuštěné lxc kontejnery, spusťte příkaz:

$ lxc list

V tuto chvíli ještě nemáme spuštěné žádné kontejnery. Získáte tedy prázdnou tabulku pouze s popisky sloupců.

Krok 7:Výpis předem vytvořených obrázků kontejneru LXC

Stejně jako Docker , LXC platforma poskytuje úložiště předem vytvořených obrazů, ze kterých můžete vytvářet kontejnery. Chcete-li zobrazit seznam všech předem sestavených bitových kopií pro všechny operační systémy včetně virtuálních počítačů, spusťte příkaz:

$ lxc image list images: 

Tím se naplní obrovský seznam obrazů kontejnerů a virtuálních strojů pro všechny operační systémy. Chcete-li se zúžit na konkrétní distribuci Linuxu, použijte syntaxi:

$ lxc image list images: grep -i os-type

Chcete-li například vyhledat dostupné obrázky pro Rocky Linux , spusťte příkaz:

$ lxc image list images: grep -i rocky

Pokud hledáte Debian obrázky, spusťte příkaz:

$ lxc image list images: grep -i debian

Krok 8:Spuštění kontejnerů LXC

Chcete-li spustit lxc kontejnery, použijte syntaxi:

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

Zde spustíme 2 kontejnery:tec-container1 z Debianu 10 a tec-container2 z Rocky Linux 8 .

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

Chcete-li uvést lxc kontejnery, spusťte příkaz:

$ lxc list

Výstup zobrazuje řadu informací o kontejnerech. To zahrnuje názvy kontejnerů, stav – ať už běžící nebo zastavený – adresy IPv4 a IPv6, typ (zda kontejner nebo virtuální počítač) a řadu snímků.

Chcete-li vypsat pouze spuštěné kontejnery, spusťte příkaz:

$ lxc list | grep -i running

Podobně pro zastavené kontejnery spusťte:

$ lxc list | grep -i stopped

Můžete zkoumat informace a metriky kontejneru, jako jsou běžící procesy, využití CPU a paměti a šířka pásma, abychom se zmínili o několika, pomocí příkazu:

$ lxc info tec-container1 

Krok 9:Získejte Shell přístup ke kontejneru LXC

Přístup bash ke kontejneru můžete získat pomocí syntaxe:

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

Chcete-li získat přístup k shellu tec-container1 , spustíme příkaz:

$ lxc exec tec-container1 bash

Jakmile získáte přístup k shellu, můžete začít pracovat s kontejnerem jako uživatel root spuštěním běžných příkazů shellu včetně aktualizace systému, jak je znázorněno:

$ apt update

Chcete-li opustit kontejner, spusťte příkaz:

$ exit

Případně můžete příkazy spouštět přímo v kontejneru bez přístupu k shellu v následujícím formátu:

$ lxc exec container-name command

Můžete například spustit následující příkazy, které aktualizují seznamy balíčků, zkontrolují verzi operačního systému běžícího na kontejneru Debianu a zkontrolují datum.

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

Krok 10:Vytáhněte/přesuňte soubor(y) do kontejneru LXC

Další operací, kterou můžete provést, je přenos souborů do az kontejneru. Abychom to demonstrovali, vytvoříme nový adresář v LXD kontejneru a přejděte do něj.

# mkdir data && cd data

Dále vytvoříme ukázkový soubor a přidáme nějaká data. K tomu vytvoříme ukázkový soubor s vim editor

# vim file1.txt

Dále napíšeme nějaký ukázkový text a soubor uložíme.

Hello World, Welcome to LXD containers.

Chcete-li stáhnout soubor z kontejneru do místního hostitelského systému, použijeme syntaxi:

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

V tomto případě bude příkaz:

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

Chcete-li odeslat nebo zkopírovat soubor z místního adresáře do kontejneru, použijte syntaxi:

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

V tomto případě máme v domovském adresáři ukázkový soubor s názvem soubor2.txt kopírování do /root/data/ cestu v tec-container2 kontejner.

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

Pro potvrzení existence souboru v kontejneru spustíme:

$ lxc exec tec-container2 ls /root/data

Krok 11:Zastavit / Spustit / Restartovat a smazat kontejnery LXC

Pomocí lxc pomocí nástroje příkazového řádku můžete provádět úlohy správy kontejnerů, jako je zastavování, spouštění, restartování a mazání kontejnerů.

Chcete-li zastavit lxc kontejner, použijte syntaxi:

$ lxc stop container-name

Chcete-li například zastavit tec-container1 , spustíme příkaz:

$ lxc stop tec-container1

Chcete-li spustit lxc kontejner, použijte syntaxi:

$ lxc start container-name

Chcete-li například spustit tec-container1 , provedeme:

$ lxc start tec-container1

Chcete-li restartovat obě lxc kontejnery, spustíme příkaz:

$ lxc restart tec-container1
$ lxc restart tec-container2

Chcete-li odstranit lxc kontejner, musíte kontejner nejprve zastavit a poté jej smazat. Například pro smazání spustíme příkazy:

$ lxc stop tec-container1
$ lxc delete tec-container1

Případně můžete tyto dva příkazy zkombinovat, jak je znázorněno.

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

Krok 12:Získejte nápovědu k možnostem příkazového řádku LXC

Chcete-li získat nápovědu k dalším možnostem příkazů, které poskytuje LXC , jednoduše spusťte příkaz:

$ lxc --help
OR
$ lxc command --help e.g
$ lxc file --help
Závěr

To byl hluboký ponor do LXD kontejnery a jak je můžete vytvářet a spravovat pomocí lxc nástroj příkazového řádku. Věříme, že vám tento průvodce pomohl.


Cent OS
  1. Jak nainstalovat MediaWiki na RHEL 8/Rocky Linux 8/AlmaLinux OS 8

  2. Jak nainstalovat PostgreSQL na CentOS 8 / Rocky Linux 8 / RHEL 8

  3. Jak nainstalovat Javu na Rocky Linux 8 / CentOS 8 / RHEL 8

  1. Jak nainstalovat GUI GNOME na Rocky Linux 8 / CentOS 8 / RHEL 8

  2. Jak nainstalovat VirtualBox na Rocky Linux 8 / CentOS 8 / RHEL 8

  3. Jak nainstalovat Docker na Rocky Linux 8 / CentOS 8 / RHEL 8 / AlmaLinux

  1. Jak nainstalovat Jenkins na Rocky Linux 8 / AlmaLinux 8

  2. Jak nainstalovat Suricata na RHEL, Rocky &AlmaLinux

  3. Jak nainstalovat MongoDB v RHEL, CentOS, Rocky &AlmaLinux