RHEL, Rocky & AlmaLinux-da LXC (Linux konteýnerleri) guruň


LXD indiki nesil konteýner we konteýnerleriň içinde işleýän Linux ulgamlary üçin ýa-da wirtual maşynlar hökmünde çuňňur hödürleýän wirtual maşyn dolandyryjysy hökmünde suratlandyrylýar.

Saklaýyş arka taraplaryny we tor görnüşlerini giňden saýlamagy goldaýan köp sanly Linux paýlanyşy üçin şekiller berýär. Şeýle hem, suratlary aýratyn kompýuterde/noutbukda we hatda bulut ýagdaýynda gurnamak mümkinçiligini berýär.

LXD konteýnerleri we VM-leri üç usul bilen dolandyrmaga mümkinçilik berýär. Lxc müşderisini ýa-da buýruk setiri guralyny, REST API ýa-da hatda üçünji tarap integrasiýalaryny ulanyp bilersiňiz.

Belli LXD aýratynlyklary şulary öz içine alýar:

  • LXD Linux paýlanyşynyň giň görnüşi üçin şekiller bilen şekillendirilýär.
  • Iň esasy wezipe hökmünde howpsuzlyk bilen guruldy.
  • Konteýnerler bilen täsirleşmek üçin REST API we lxc buýruk setiri guralyny üpjün edýär.
  • Dürli ammarlary, ammar göwrümlerini we ammar howuzlaryny goldaýar.
  • Tor dolandyryşy köpri torlaryny we biri-birine garşy tunelleri döretmek arkaly amala aşyrylýar.
  • CPU, RAM, disk ulanylyşy, I/O blok we ýadro çeşmeleri ýaly çeşmelere giňişleýin gözegçilik.
  • Çeýe we ulaldylyp bilinýän - Kompýuteriňize konteýnerler ýerleşdirip bilersiňiz we dürli düwünlerde müňlerçe konteýnerleri jemläp bilýän bir topar düzüp bilersiňiz.

LXD tarapyndan üpjün edilen lxc buýruk setiri müşderi guraly bilen garyşdyrmaly däl, LXC (Linux Container), ulanyjylara konteýnerleri we wirtual maşynlary bökdençsiz döretmäge we dolandyrmaga mümkinçilik bermek üçin güýçli API we beýleki gurallary ulanýan meşhur OS derejesindäki wirtuallaşdyryş tehnologiýasydyr. ýekeje öý eýesi. Şablonlary, gurallaryň dilini we kitaphananyň baglanyşyklaryny öz içine alýar.

LXC amallary dolandyrmak üçin aşakdaky ýadro aýratynlyklaryny ulanýar:

  • ernadro at giňişlikleri: pid, gurnama, uts ulgamy we ulanyjy.
  • CGroups (gözegçilik toparlary).
  • Chroots - pivot_root ulanmak.
  • Seccomp syýasaty.
  • SELinux we Apparmor profilleri.

Linuxcontainers.org, LXD we LXC-iň aňyrsyndaky zontik taslamasydyr. Maksady, Linux konteýner tehnologiýalary üçin distro we satyjy-bitarap platforma hödürlemek.

Şol giriş bilen, indi CentOS, Rocky Linux we AlmaLinux ýaly RHEL esasly Linux paýlamalarynda LXC konteýnerlerini nädip döretmelidigini we dolandyrjakdygyny görkezeris.

Minimal gurnama bilen işleýän Linux operasiýa ulgamy:

  • RHEL Linux gurmak
  • CentOS Linux gurmak
  • Rocky Linux gurmak
  • AlmaLinux gurmak

1-nji ädim: SELinux-y rugsat beriji tertibe düzüň

Jübütden göni SELinux-y sazlap, rugsat beriji edip başlarys. Emma muny etmezden ozal ulgam paketlerini aşakdaky ýaly täzeläliň:

$ sudo dnf update

SELinux-y rugsat bermek üçin buýrugy ýerine ýetiriň:

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

Munuň güýje girmegi üçin serweriňizi täzeden açyň.

$ sudo reboot

SELinux-yň ýagdaýyny tassyklaň.

$ getenforce

2-nji ädim: EPEL ammaryny guruň

EPEL, RedHat Enterprise Linux we beýleki RHEL esasly paýlamalar üçin ýokary hilli paketler toplumyny üpjün edýän Fedora Taslamasynyň ammarydyr.

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

3-nji ädim: ernadro parametrlerini goşuň

LXD gurmazdan ozal käbir goşmaça parametrler zerurdyr. Şonuň üçin kök ulanyja geçiň:

$ su -

Parametrleri aşakdaky ýaly goşuň.

$ 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

Parametrler ýerinde bolansoň, dowam etdiriň we Snap-y işlediň.

4-nji ädim: Snap gurmak we işletmek

RXEL 8-de LXD-ni gurmagyň iň ýönekeý usuly, ony gysga paket hökmünde gurmakdyr. Firstöne ilki bilen aşakdaky ýaly suratlary guralyň.

$ sudo dnf install snapd

Bu, görkezilişi ýaly beýleki Python baglylyklary bilen birlikde snapd daemon ýa-da hyzmaty gurar.

Snap gysga gurnalan ýagdaýynda, esasy gysga aragatnaşyk rozetkasyny işlediň we işlediň.

$ sudo systemctl enable --now snapd.socket

Mundan başga-da,/var/lib/snapd/snap/snap-dan simlink döredip, nusgawy goldawy işjeňleşdiriň.

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

Gysga ýollary täzelemek üçin ulgamyňyzy täzeden açyň.

$ sudo reboot

5-nji ädim: LXD konteýnerizasiýa dolandyryjysyny guruň

LXD-ni gysga wagtda gurmagyň iki usuly bar. LXD-iň iň soňky wersiýasyny görkezilişi ýaly gurnap bilersiňiz.

$ sudo snap install —-classic lxd

Ativea-da bolmasa, iň soňky durnukly LTS wersiýasyny aşakdaky ýaly gurup bilersiňiz:

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

Sudo ulanyjysyna geçmezden lxc buýruklaryny ýerine ýetirmek üçin häzirki giren ulanyjyny lxd toparyna goşuň.

$ sudo usermod -aG lxd $USER

Ulanyjynyň ähli toparlaryny sanap, ulanyjynyň lxd toparyna goşulandygyny barlaň.

$ groups tecmint

Ondan soň, newgrp buýrugyny aşakdaky ýaly işlediň.

$ newgrp lxd

Buýruk, giriş sessiýasynda häzirki topar ID-ni üýtgedýär. Häzirki topar ID-ni lxd atly topara düzýär.

6-njy ädim: LXD gurşawyny başlamak

LXD konteýnerlerini döretmäge we dolandyrmaga başlamazdan ozal buýrugy işledip LXD gurşawyny başlamaly.

$ lxc init

Aşakdaky zat, daşky gurşawyňyzy gurmaga mümkinçilik berýän teklipleriň tapgyry. Dymmaklyk gowy işlär, ýöne öz islegleriňizi görkezip bilersiňiz.

Arka tarap hökmünde lvm opsiýasy bilen tec-pool atly ammar howuzyny döretdik.

Justaňy düzen LXD gurşawyňyzy barlamak üçin ulanyp boljak birnäçe buýruk bar. Mysal üçin, LXD profiliniň ýerine ýetirilişini görkezmek üçin:

$ lxc profile show default

Tor adapterlerini we IPv4 we IPv6 salgylaryny görkezmek üçin işlediň:

$ lxc network list

Muny hasam daraldyp, lxdbr0 interfeýsi barada has gowy maglumatlary aşakdaky ýaly görkezip bilersiňiz.

$ lxc network show lxdbr0

Şeýle hem ammar howuzyny barlap bilersiňiz.

$ lxc storage list

Ammar howzy barada has giňişleýin maglumatlary alyp bilersiňiz.

$ lxc storage show tec-pool

Işleýän lxc konteýnerlerini sanawlamak üçin buýrugy işlediň:

$ lxc list

Häzirki wagtda entek işleýän gaplarymyz ýok. Şeýlelik bilen diňe sütün ýazgylary bilen boş stol alarsyňyz.

7-nji ädim: Öňünden gurlan LXC konteýner suratlarynyň sanawy

Docker ýaly, LXC platformasy, konteýnerleri döredip boljak öňünden gurlan şekilleriň ammaryny üpjün edýär. Wirtual maşynlary goşmak bilen ähli operasiýa ulgamlary üçin öňünden gurlan şekilleri sanamak üçin buýrugy işlediň:

$ lxc image list images: 

Bu, ähli operasiýa ulgamlary üçin konteýner şekilleriň we wirtual maşynlaryň uly sanawyny jemleýär. Belli bir Linux paýlanyşyny çäklendirmek üçin sintaksis ulanyň:

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

Mysal üçin, Rocky Linux üçin elýeterli suratlary gözlemek üçin buýrugy işlediň:

$ lxc image list images: grep -i rocky

Debian suratlaryny gözleýän bolsaňyz, buýrugy işlediň:

$ lxc image list images: grep -i debian

8-nji ädim: LXC konteýnerlerini işe girizmek

Lxc konteýnerleri işe girizmek üçin sintaksis ulanyň:

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

Bu ýerde 2 konteýner işe girizeris: Debian 10-dan tec-konteýner1 we Rocky Linux 8-den tec-konteýner2.

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

Lxc konteýnerlerini sanamak üçin buýrugy ýerine ýetiriň:

$ lxc list

Çykyş, konteýnerler hakda köp maglumatlary görkezýär. Bu konteýnerleriň adyny, döwletini - işleýän ýa-da saklanan bolsun - IPv4 we IPv6 salgylaryny, görnüşini (konteýner ýa-da wirtual maşyn bolsun) we birnäçe suraty öz içine alýar.

Diňe işleýän gaplary sanamak üçin buýrugy işlediň:

$ lxc list | grep -i running

Edil şonuň ýaly-da, saklanan gaplar üçin ýerine ýetiriň:

$ lxc list | grep -i stopped

Bir konteýneriň işleýiş prosesi, CPU we ýadyň ulanylyşy we geçirijilik giňligi ýaly buýruklary ulanyp, bir näçesini bellemek üçin gözläp bilersiňiz:

$ lxc info tec-container1 

9-njy ädim: LXC konteýnerine gabykdan girmek

Sintaksis ulanyp, bir konteýneriň başyna girip bilersiňiz:

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

Tek-konteýner1-e gabykdan girmek üçin buýrugy ýerine ýetireris:

$ lxc exec tec-container1 bash

Gabykdan peýdalananyňyzdan soň, umumy gabyk buýruklaryny işledip, ulgamy görkezilişi ýaly täzeläp, kök ulanyjy hökmünde konteýner bilen aragatnaşyk saklap bilersiňiz:

$ apt update

Konteýnerden çykmak üçin buýrugy işlediň:

$ exit

Ativea-da bolmasa, buýruklary aşakdaky formatda ulanyp, gabyga girmän göni konteýnerde ýerine ýetirip bilersiňiz:

$ lxc exec container-name command

Mysal üçin, paket sanawlaryny täzelän, Debian konteýnerinde işleýän OS wersiýasyny barlaýan we senesini barlaýan aşakdaky buýruklary işledip bilersiňiz.

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

10-njy ädim: Faýllary (lar) LXC konteýnerine çekiň/itiň

Başga bir amal, faýllary konteýnerden geçirmek. Muny görkezmek üçin LXD konteýnerinde täze bir katalog dörederis we oňa geçeris.

# mkdir data && cd data

Ondan soň, nusga faýly dörederis we käbir maglumatlary goşarys. Munuň üçin vim redaktory bilen nusga faýly dörederis

# vim file1.txt

Ondan soň, käbir nusga tekstini ýazarys we faýly ýatda saklarys.

Hello World, Welcome to LXD containers.

Faýly konteýnerden ýerli host ulgamyna çekmek üçin sintaksis ulanarys:

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

Bu ýagdaýda buýruk bolar:

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

Directoryerli katalogdan konteýnerlere bir faýly basmak ýa-da göçürmek üçin sintaksis ulanyň:

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

Bu ýagdaýda, öý bukjasynda file2.txt atly nusga faýly bar, tec-konteýner2 konteýnerindäki/root/data/path-a göçürilýär.

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

Konteýnerdäki faýlyň bardygyny tassyklamak üçin işlederis:

$ lxc exec tec-container2 ls /root/data

11-nji ädim: LXC konteýnerlerini duruzyň/başlaň/täzeden açyň we pozuň

“Lxc” buýruk setiri kömegi bilen konteýnerleri saklamak, başlamak, täzeden açmak we pozmak ýaly konteýner dolandyryş meselelerini ýerine ýetirip bilersiňiz.

Lxc konteýnerini duruzmak üçin sintaksis ulanyň:

$ lxc stop container-name

Mysal üçin, tec-konteýner1-i duruzmak üçin buýrugy ýerine ýetireris:

$ lxc stop tec-container1

Lxc konteýnerini başlamak üçin sintaksis ulanyň:

$ lxc start container-name

Mysal üçin, tec-konteýner1 başlamak üçin ýerine ýetireris:

$ lxc start tec-container1

Iki lxc konteýnerini täzeden açmak üçin buýrugy ýerine ýetireris:

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

Lxc konteýnerini pozmak üçin ilki bilen konteýni duruzmaly we soňundan pozmaly. Mysal üçin, pozmak üçin buýruklary işlederis:

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

Ativea-da bolmasa, bu iki buýrugy görkezilişi ýaly birleşdirip bilersiňiz.

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

12-nji ädim: LXC buýruk setiri opsiýalarynda kömek alyň

LXC tarapyndan üpjün edilen beýleki buýruk opsiýalarynda kömek almak üçin buýrugy işlediň:

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

Bu LXD konteýnerlerine çuňňur çümdi we lxc buýruk setiri kömekçi guralyny ulanyp nädip döredip we dolandyryp bilersiňiz. Bu gollanmany peýdaly görendigiňize ynanýarys.