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 gurnalansoň, esasy 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, lxd toparyna ulanyjynyň 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
Ony 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 jikme-jik maglumat 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ň maglumatlary we işleýiş prosesi, CPU we ýadyň ulanylyşy we zolak giňligi ýaly buýruklary ulanyp 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
Gabyk ygtyýaryna eýe bolanyň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 täsirleşip 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.