Sakinisha LXC (Vyombo vya Linux) katika RHEL, Rocky & AlmaLinux


LXD inafafanuliwa kama chombo cha kizazi kijacho na meneja wa mashine pepe ambayo hutoa matumizi kamili ya mifumo ya Linux inayoendesha ndani ya vyombo au kama mashine pepe.

Inatoa picha kwa idadi isiyo ya kawaida ya usambazaji wa Linux na usaidizi wa uteuzi mpana wa uhifadhi wa nyuma na aina za mtandao. Pia hutoa fursa ya kusakinisha picha kwenye PC/laptop binafsi na hata kwenye mfano wa wingu.

LXD hukuruhusu kudhibiti vyombo na VM kwa kutumia njia tatu. Unaweza kutumia mteja wa lxc au zana ya mstari wa amri, API ya REST, au hata miunganisho ya wahusika wengine.

Vipengele muhimu vya LXD ni pamoja na:

  • LXD inategemea picha na picha kwa uteuzi mpana wa usambazaji wa Linux.
  • Imejengwa kwa usalama kama kipaumbele cha juu.
  • Inatoa REST API na zana ya mstari wa amri ya lxc ili kuingiliana na vyombo.
  • Inatoa usaidizi kwa anuwai nyingi za nyuma za uhifadhi, ujazo wa uhifadhi, na madimbwi ya uhifadhi.
  • Udhibiti wa mtandao ni kupitia uundaji wa mitandao ya daraja na vichuguu mbalimbali.
  • Udhibiti wa hali ya juu wa rasilimali kama vile CPU, RAM, matumizi ya diski, block I/O na rasilimali za kernel.
  • Inanyumbulika na inayoweza kupanuka - Unaweza kusambaza vyombo kwenye Kompyuta yako na kusanidi kundi linaloweza kujumlisha maelfu ya vyombo kwenye nodi mbalimbali.

Isichanganywe na zana ya mteja wa mstari wa amri ya lxc iliyotolewa na LXD, LXC (Linux Container) ni teknolojia maarufu ya uboreshaji ya kiwango cha OS ambayo hutumia API yenye nguvu na zana zingine ili kuwezesha watumiaji kuunda na kudhibiti vyombo na mashine pepe bila mshono katika. mwenyeji mmoja. Inajumuisha violezo, lugha ya zana, na vifungo vya maktaba.

LXC hutumia vipengele vifuatavyo vya kernel kushughulikia michakato:

  • Nafasi za majina za Kernel: pid, mount, uts mtandao, na mtumiaji.
  • Makundi (vikundi vya kudhibiti).
  • Chroots - Kwa kutumia pivot_root.
  • Sera za Ushirikiano.
  • SeLinux na wasifu wa Apparmor.

Linuxcontainers.org ni mradi mwavuli nyuma ya LXD na LXC zote mbili. Madhumuni yake ni kutoa jukwaa la distro na lisiloegemea upande wa muuzaji kwa teknolojia za kontena za Linux.

Utangulizi huo ukiwa umeondolewa njiani, sasa tutaonyesha jinsi ya kuunda na kudhibiti vyombo vya LXC kwenye usambazaji wa Linux unaotegemea RHEL kama vile CentOS, Rocky Linux, na AlmaLinux.

Mfumo wa uendeshaji wa Linux unaofanya kazi na usakinishaji mdogo:

  • Usakinishaji wa RHEL Linux
  • Usakinishaji wa CentOS Linux
  • Usakinishaji wa Rocky Linux
  • Usakinishaji wa AlmaLinux

Hatua ya 1: Weka SELinux kwa Hali ya Ruhusa

Papo hapo, tutaanza kwa kusanidi SELinux na kuiweka ruhusu. Lakini kabla ya kufanya hivyo, hebu tusasishe vifurushi vya mfumo kama ifuatavyo:

$ sudo dnf update

Ili kuweka SELinux kuruhusu, tekeleza amri:

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

Ili hii ianze kutumika, fungua upya seva yako.

$ sudo reboot

Na uthibitishe hali ya SELinux.

$ getenforce

Hatua ya 2: Sakinisha Hifadhi ya EPEL

EPEL ni hazina kutoka kwa Mradi wa Fedora ambao hutoa seti ya vifurushi vya ubora wa juu kwa RedHat Enterprise Linux na usambazaji mwingine unaotegemea RHEL.

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

Hatua ya 3: Ongeza Vigezo vya Kernel

Kabla ya kusakinisha LXD, baadhi ya vigezo vya ziada vinahitajika. Kwa hivyo badilisha kwa mtumiaji wa mizizi:

$ su -

Na ongeza vigezo kama ifuatavyo.

$ 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

Mara tu vigezo vimewekwa, kisha endelea na uwashe Snap.

Hatua ya 4: Sakinisha na Wezesha Snap

Njia rahisi zaidi ya kusakinisha LXD kwenye RHEL 8 ni kusakinisha kama kifurushi cha snap. Lakini kwanza, hebu tusakinishe snap kama ifuatavyo.

$ sudo dnf install snapd

Hii itasakinisha daemon ya snapd au huduma pamoja na tegemezi zingine za Python kama inavyoonyeshwa.

Na snap imewekwa, endelea na uwezesha tundu kuu la mawasiliano ya snap.

$ sudo systemctl enable --now snapd.socket

Kwa kuongezea, wezesha usaidizi wa kawaida kwa kuunda ulinganifu kutoka /var/lib/snapd/snap hadi /snap.

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

Ili kusasisha njia za haraka, anzisha upya mfumo wako.

$ sudo reboot

Hatua ya 5: Sakinisha Kidhibiti cha Uwekaji Kontena cha LXD

Kuna njia mbili za kusakinisha LXD kutoka kwa haraka. Unaweza kusakinisha toleo jipya zaidi la LXD kama inavyoonyeshwa.

$ sudo snap install —-classic lxd

Vinginevyo, unaweza kusakinisha toleo la hivi punde la LTS kama ifuatavyo:

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

Ili kuweza kutekeleza amri za lxc bila kubadili mtumiaji wa sudo, ongeza mtumiaji aliyeingia kwa sasa kwenye kikundi cha lxd.

$ sudo usermod -aG lxd $USER

Thibitisha kuwa mtumiaji ameongezwa kwenye kikundi cha lxd kwa kuorodhesha vikundi vyote ambavyo mtumiaji yuko.

$ groups tecmint

Ifuatayo, endesha amri ya newgrp kama ifuatavyo.

$ newgrp lxd

Amri hubadilisha kitambulisho cha sasa cha kikundi wakati wa kipindi cha kuingia. Inaweka kitambulisho cha kikundi cha sasa kwa kikundi kilichoitwa ambacho ni lxd.

Hatua ya 6: Kuanzisha Mazingira ya LXD

Kabla ya kuanza kuunda na kudhibiti vyombo vya LXD, tunahitaji kuanzisha mazingira ya LXD kwa kuendesha amri.

$ lxc init

Ifuatayo ni mfululizo wa vidokezo ambavyo vitakuruhusu kusanidi mazingira yako. Chaguo-msingi zitafanya kazi vizuri, lakini jisikie huru kutaja mapendeleo yako mwenyewe.

Tumeunda hifadhi inayoitwa tec-pool na chaguo la lvm kama mazingira ya nyuma.

Ili kuthibitisha mazingira ya LXD ambayo umesanidi hivi punde, kuna idadi ya amri unazoweza kutumia. Kwa mfano, ili kuonyesha wasifu chaguo-msingi wa LXD tekeleza:

$ lxc profile show default

Ili kuonyesha adapta za mtandao na anwani za IPv4 na IPv6, endesha:

$ lxc network list

Unaweza kuipunguza zaidi na kuonyesha maelezo bora zaidi kuhusu kiolesura cha lxdbr0 kama ifuatavyo.

$ lxc network show lxdbr0

Unaweza pia kuthibitisha bwawa la kuhifadhi.

$ lxc storage list

Unaweza kupata maelezo zaidi kuhusu bwawa la kuhifadhia.

$ lxc storage show tec-pool

Ili kuorodhesha vyombo vya lxc vinavyoendesha, endesha amri:

$ lxc list

Kwa sasa, bado hatuna vyombo vinavyoendesha. Kwa hivyo utapata jedwali tupu na lebo za safu wima tu.

Hatua ya 7: Kuorodhesha Picha za Kontena za LXC Zilizoundwa Mapema

Kama tu Docker, jukwaa la LXC hutoa hifadhi ya picha zilizojengwa awali ambazo unaweza kuunda vyombo. Ili kuorodhesha picha zote zilizoundwa awali kwa mifumo yote ya uendeshaji ikijumuisha mashine pepe, endesha amri:

$ lxc image list images: 

Hii inajaza orodha kubwa ya picha za kontena na mashine pepe za mifumo yote ya uendeshaji. Ili kupunguza hadi usambazaji maalum wa Linux, tumia syntax:

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

Kwa mfano, kutafuta picha zinazopatikana za Rocky Linux, endesha amri:

$ lxc image list images: grep -i rocky

Ikiwa unatafuta picha za Debian, endesha amri:

$ lxc image list images: grep -i debian

Hatua ya 8: Kuzindua Vyombo vya LXC

Ili kuzindua vyombo vya lxc, tumia syntax:

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

Hapa, tutazindua kontena 2: tec-container1 kutoka Debian 10 na tec-container2 kutoka Rocky Linux 8.

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

Ili kuorodhesha vyombo vya lxc, tekeleza amri:

$ lxc list

Toleo linaonyesha habari nyingi kuhusu vyombo. Hii inajumuisha jina la vyombo, hali - iwe inaendeshwa au imesimamishwa - anwani za IPv4 na IPv6, aina (iwe ni chombo au mashine pepe), na idadi ya vijipicha.

Ili kuorodhesha vyombo vinavyoendesha pekee, endesha amri:

$ lxc list | grep -i running

Vivyo hivyo, kwa vyombo vilivyosimamishwa, tekeleza:

$ lxc list | grep -i stopped

Unaweza kuchunguza taarifa na vipimo vya kontena kama vile michakato ya uendeshaji, CPU na utumiaji wa kumbukumbu, na kipimo data ili kutaja chache kwa kutumia amri:

$ lxc info tec-container1 

Hatua ya 9: Pata Ufikiaji wa Shell kwa Kontena ya LXC

Unaweza kupata ufikiaji wa bash kwa kontena kwa kutumia syntax:

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

Ili kupata ufikiaji wa ganda kwa tec-container1, tutaendesha amri:

$ lxc exec tec-container1 bash

Mara tu unapopata ufikiaji wa ganda, unaweza kuanza kuingiliana na kontena kama mtumiaji wa mizizi kwa kutekeleza amri za kawaida za ganda pamoja na kusasisha mfumo kama inavyoonyeshwa:

$ apt update

Ili kutoka kwenye chombo, endesha amri:

$ exit

Vinginevyo, unaweza kutekeleza maagizo moja kwa moja kwenye kontena bila kupata ganda kwa kutumia umbizo lifuatalo:

$ lxc exec container-name command

Kwa mfano, unaweza kuendesha amri zifuatazo ambazo zitasasisha orodha za vifurushi, angalia toleo la OS inayoendesha kwenye chombo cha Debian na uangalie tarehe.

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

Hatua ya 10: Vuta/Sukuma Faili kwenye Chombo cha LXC

Operesheni nyingine unayoweza kutekeleza ni kuhamisha faili hadi na kutoka kwa kontena. Ili kuonyesha hili, tutaunda saraka mpya katika chombo cha LXD na kuingia ndani yake.

# mkdir data && cd data

Ifuatayo, tutaunda sampuli ya faili na kuongeza data fulani. Ili kufanya hivyo tutaunda sampuli ya faili na vim hariri

# vim file1.txt

Ifuatayo, tutaandika maandishi ya sampuli na kuhifadhi faili.

Hello World, Welcome to LXD containers.

Ili kuvuta faili kutoka kwa chombo hadi kwa mfumo wa mwenyeji wa ndani, tutatumia syntax:

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

Katika kesi hii, amri itakuwa:

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

Ili kusukuma au kunakili faili kutoka kwa saraka ya ndani hadi kwenye kontena tumia syntax:

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

Katika hali hii, tunayo sampuli ya faili katika saraka ya nyumbani inayoitwa file2.txt inayonakiliwa kwa /root/data/ njia katika chombo cha tec-container2.

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

Ili kudhibitisha uwepo wa faili kwenye kontena, tutaendesha:

$ lxc exec tec-container2 ls /root/data

Hatua ya 11: Acha/Anza/Anzisha tena na Futa Vyombo vya LXC

Ukiwa na matumizi ya mstari wa amri ya lxc unaweza kutekeleza majukumu ya usimamizi wa kontena kama vile kusimamisha, kuanza, kuwasha upya na kufuta vyombo.

Ili kusimamisha chombo cha lxc, tumia syntax:

$ lxc stop container-name

Kwa mfano, kusimamisha tec-container1, tutaendesha amri:

$ lxc stop tec-container1

Kuanzisha chombo cha lxc, tumia syntax:

$ lxc start container-name

Kwa mfano, ili kuanza tec-container1, tutatekeleza:

$ lxc start tec-container1

Kuanzisha tena vyombo vyote viwili vya lxc, tutaendesha amri:

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

Ili kufuta kontena la lxc, lazima, kwanza, usimamishe kontena kisha ukifute. Kwa mfano, kufuta, tutaendesha amri:

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

Vinginevyo, unaweza kuchanganya amri hizi mbili kama inavyoonyeshwa.

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

Hatua ya 12: Pata Usaidizi kwenye Chaguzi za mstari wa amri ya LXC

Ili kupata msaada juu ya chaguzi zingine za amri zinazotolewa na LXC, endesha tu amri:

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

Huo ulikuwa uchanganuzi wa kina katika vyombo vya LXD na jinsi unavyoweza kuunda na kudhibiti kwa kutumia zana ya matumizi ya mstari wa amri ya lxc. Tunaamini kwamba umepata mwongozo huu kuwa muhimu.