
LXD — on järgmise põlvkonna konteinerihaldur, nii väidab . See pakub kasutajaliidest, mis sarnaneb virtuaalmasinate omale, kuid kasutab selle asemel Linuxi konteinereid.
LXD-i tuum — on privileeritud teenus (teenus, mis on käivitatud root õigustega), mis pakub REST API-d kohalikku unix socketi kaudu ning ka üle võrgu, kui vastav konfiguratsioon on paigaldatud. Kliendid, nagu LXD-ga kaasa tulev käsurea tööriist, saadavad päringud selle REST API kaudu. See tähendab, et olenemata sellest, kas pöördute kohalikku hosti või kaug-hosti poole, töötab kõik samamoodi.
Selles artiklis ei keskendu me LXD kontseptsioonidele, ei käsitle kõiki dokumentatsioonis esitatud võimalusi, sealhulgas hiljutist teostust viimastes LXD versioonides QEMU virtuaalmasinate toe paralleelselt konteineritega. Selle asemel uurime ainult konteinerihalduse põhivõimalusi – seadistame salvestusjärjestused, võrgu, käivitame konteineri, rakendame ressursipiirangud ja vaatame, kuidas kasutada jääkaadreid, et saaksite LXD-st põhjaliku arusaama ja kasutada Linuxis konteinereid.
Täieliku teabe saamiseks tutvuge ametliku allikaga:
Navigeerimine
LXD paigaldamine
LXD paigaldamine Ubuntu distributsioonides
lxd muundub snap-paketiks :
apt search lxd
lxd/eoan 1:0.7 all
Ülemineku pakett - lxd -> snap (lxd)See tähendab, et installitakse kohe kaks paketti, üks süsteemipakett ja teine snap-pakett. Kahe paketi installimine süsteemi võib tekitada probleemi, kus süsteemipakett võib muutuda orvuks, kui snap-pakett eemaldatakse snap-pakettide halduriga.
Leidke pakett muundub snap-repositoriumis saab järgmise käsuga:
snap find lxd
Nimi Versioon Kokkuvõte
lxd 3.21 Süsteemi konteinerihaldur ja API
lxd-demo-server 0+git.6d54658 Veebipõhised tarkvara demoseansid, mis kasutavad LXD
nova ocata OpenStacki arvutusservice (nova)
nova-hypervisor ocata OpenStacki arvutusservice - KVM hüperviisor (nova)
distrobuilder 1.0 Piltide koostamise tööriist LXC ja LXD jaoks
fabrica 0.1 Snapide koostamine, suunates veebivormi ...
satellite 0.1.2 Täiustatud skaleeritav avatud allika intelligentsuse platvormKäivitades käsu loend võime veenduda, et pakett muundub pole veel installitud:
snap list
Nimi Versioon Rev Jälgimine Publisher Märkused
core 16-2.43.3 8689 stable canonical✓ coreKuigi LXD on snap-pakett, tuleb seda installida läbi süsteemipaketti muundub, mis loob süsteemis vastava grupi, vajalikud utiliidid; /usr/bin jne.
sudo apt update
sudo apt install lxdVeendume, et pakett on installitud kui snap-pakett:
snap list
Nimi Versioon Rev Jälgimine Publisher Märkused
core 16-2.43.3 8689 stable canonical✓ core
lxd 3.21 13474 stable/... canonical✓ -LXD paigaldamine Arch Linux distributsioonides
LXD-paketi installimiseks süsteemis tuleb käivitada järgmised käsud, esimene - ajakohastab pakettide nimekirja süsteemis, mis on saadaval reposioonis, teine - installib paketi:
sudo pacman -Syyu && sudo pacman -S lxdPärast paketi installimist, et hallata LXD-d tavalise kasutajana, tuleb see lisada süsteemi gruppi muundub:
sudo usermod -a -G lxd user1Veendume, et kasutaja user1 on lisatud gruppi muundub:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxdKui grupp muundub pole nimekirjas näha, siis tuleb kasutaja sessioon uuesti aktiveerida. Selleks peab sama kasutaja välja logima ja uuesti sisenema.
Aktiveerime systemd LXD teenuse üleslaadimise süsteemi käivitamise ajal:
sudo systemctl enable lxdKäivitame teenuse:
sudo systemctl start lxdKontrollime teenuse staatust:
sudo systemctl status lxdLXD salvestus (Storage)
Enne, kui alustame initsialiseerimist, peame aru saama, kuidas LXD-s säilitamine loogiliselt paigutatud on.
Säilitamine (Salvestus) ühe või mitme Säilitustorn mis kasutab ühte toetatud failisüsteemist nagu ZFS, BTRFS, LVM või tavalised kataloogid. Iga Säilitustorn jagatakse mahtudeks (Säilituse maht) mis sisaldavad pilte, konteinerite või muu otstarbega andmeid.
- Pildid — need on spetsiaalselt kokku pandud jaotused, milles ei ole Linuxi tuuma ja mis on saadaval välistest allikatest
- Konteinerid — need on paigaldatud jaotused piltidest, mis on tööks valmis
- Snaipid — need on konteinerite oleku pildid, millesse saab tagasi pöörduda

LXD-s salvestamise haldamiseks kasutatakse käsku lxc storage mille kohta saab abi küsida, kasutades võtit — lxc storage --help
Järgmine käsk kuvab ekraanile kõigi Säilitustorn LXD salvestuste nimekirja:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+Kogu selle valitud jaoks salvestuste nimekirja vaatamiseks kasutatakse käsku Säilituse maht lxc storage volume list Säilitustorn lxc storage volume list hddpool+-------+----------------------------------+-------------+---------+ | TYPE | NAME | DESCRIPTION | USED BY | +-------+----------------------------------+-------------+---------+ | image | ebd565585223487526ddb3607f515... | | 1 | +-------+----------------------------------+-------------+---------+ lxc storage volume list ssdpool+-----------+----------------------------------+-------------+---------+ | TYPE | NAME | DESCRIPTION | USED BY | +-----------+----------------------------------+-------------+---------+ | container | alp3 | | 1 | +-----------+----------------------------------+-------------+---------+ | container | jupyter | | 1 | +-----------+----------------------------------+-------------+---------+ | image | ebd565585223487526ddb3607f515... | | 1 | +-----------+----------------------------------+-------------+---------+:
Samuti, kuiloomisest valiti BTRFS failisüsteem, saab saada nimekirjasubvolumes Säilitustorn BTRFS tõlgenduses, kasutades selle failisüsteemi tööriistu: Säilituse maht või sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/hddpoolID 257 gen 818 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3 sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/ssdpoolID 257 gen 1820 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3 ID 260 gen 1819 parent 5 top level 5 path containers/jupyter ID 263 gen 1820 parent 5 top level 5 path containers/alp3
Enne konteinerite loomist ja kasutamist tuleb teostada LXD üldine initsialiseerimine, mis loob ja seadistab võrgu ning salvestuse. Seda saab teha käsitsi, kasutades kliendi standardkäsku, mis on saadaval nimekirjas, kutsudes käskulxc --helpLXD initsialiseerimine
või initsialiseerimise abil lxd init vastates mõnele küsimusele. lxd init vastamisel mõnele küsimusele.
Failisüsteemi valimine salvestusjärjestusele
LXD küsib initsialiseerimise ajal mitmeid küsimusi, sealhulgas vaikimisi failisüsteemi tüüp. SäilitustornSelle jaoks valitakse vaikimisi failisüsteemiks BTRFS. Pärast loomist ei ole võimalik faili süsteemi muuta.Failisüsteemi valimiseks on olemas :
Funktsioon
Directory
Btrfs
LVM
ZFS
CEPH
Optimeeritud pildi salvestamine
no
yes
yes
yes
yes
Optimeeritud instantside loomine
no
yes
yes
yes
yes
Optimeeritud snapshotide loomine
no
yes
yes
yes
yes
Optimeeritud pildi edastamine
no
yes
no
yes
yes
Optimeeritud instantside edastamine
no
yes
no
yes
yes
Kirjuta kirjutamise peale
no
yes
yes
yes
yes
Plokkpõhine
no
no
yes
no
yes
Kiire kloonimine
no
yes
yes
yes
yes
Salvestusjuhi kasutamine konteineris
yes
yes
no
no
no
Taasta vanematest snapshotidest (mitte viimastest)
yes
yes
yes
no
yes
Salvestuskvoodid
jah(*)
yes
yes
yes
no
Võrgu ja salvestusjärjestuse initsialiseerimine assistendi abil
Järgmine käsu, mida me käsitleme, võimaldab seadistada LXD põhikomponente lihtsate küsimuste vastuste kaudu initsialiseerimisviisardi abil.
Käitage käsku lxc init ja sisestage vastused küsimustele pärast kolmnurksümbolit, nagu näidatud allpool, või muutke neid vastavalt oma tingimustele:
lxd init
Kas soovite kasutada LXD klastrisse? (jah/ei) [vaikimisi=ei]:
Kas soovite konfigureerida uut salvestusala? (jah/ei) [vaikimisi=jah]:
Uue salvestusala nimi [vaikimisi=vaikimisi]: ssdpool
Kasutatav salvestusbackend (lvm, btrfs, dir) [vaikimisi=btrfs]:
Kas soovite luua uue BTRFS ala? (jah/ei) [vaikimisi=jah]:
Kas soovite kasutada olemasolevat plokiseadet? (jah/ei) [vaikimisi=ei]:
Uue silindri seadme suurus GB-des (1GB minimaalne) [vaikimisi=15GB]: 10GB
Kas soovite ühenduda MAAS serveriga? (jah/ei) [vaikimisi=ei]:
Kas soovite luua uue kohaliku võrgu silla? (jah/ei) [vaikimisi=jah]:
Mis peaks olema uue silda nimi? [vaikimisi=lxdbr0]:
Millist IPv4 aadressi tuleks kasutada? (CIDR alamvõrgu notatsioon, "auto" või "ei") [vaikimisi=auto]: 10.0.5.1/24
Kas soovite, et LXD NAT-käivitaks IPv4 liiklust teie sillal? [vaikimisi=jah]:
Millist IPv6 aadressi tuleks kasutada? (CIDR alamvõrgu notatsioon, "auto" või "ei") [vaikimisi=auto]: ei
Kas soovite, et LXD oleks kergesti kergesti saadaval? (jah/ei) [vaikimisi=ei]:
Kas soovite, et ummistunud vaheldumisi uuendataks automaatselt? (jah/ei) [vaikimisi=jah] ei
Kas soovite, et YAML "lxd init" eelseade välja trükitaks? (jah/ei) [vaikimisi=ei]: Suurendamine täiendava salvestusjärjestuse loomisega
Eelmises sammus lõime Säilitustorn millele andsime nime ssdpool ja mille fail asub minu süsteemis aadressil /var/lib/lxd/disks/ssdpool.img. See failisüsteemi aadress vastab minu personaalse arvuti füüsilisele SSD-diskile.
Järgmiste toimingute puhul, et paremini mõista, millist rolli mängib Säilitustorn salvestuses, loome teise Säilitustorn mis asub füüsiliselt teistsugusel kettatüübil, HDD-l. Säilitustorn Probleem on selles, et LXD ei luba luua /var/lib/lxd/disks/ välja aadressist vt arendaja vastust. Säilitustorn Seda piirangut saame vältida initsialiseerimise/formaatimise ajal, source.
märgides väärtuse plokiseadmeks, mitte loopback-faili teeks, määrates selle võtmes. Säilitustorn On vajalik määrata loopback-fail või olemasolev partitsioon teie failisüsteemis, mida see kasutab. Selleks loome ja kasutame faili, mille suuruse piirdame 10GB-ga:
dd if=\/dev\/zero of=\/mnt\/work\/lxd\/hddpool.img bs=1MB count=10000
10000+0 records in
10000+0 records out
10000000000 bytes (10 GB, 9,3 GiB) copied, 38,4414 s, 260 MB\/sÜhendame loopback-faili vaba loopback-seadmestikuga:
sudo losetup --find --show \/mnt\/work\/lxd\/hddpool.img
\/dev\/loop1Tänu võtmele --show tagastab käsk ekraanile seadme nime, millega meie loopback-fail on ühendatud. Vajadusel saame ekraanile väljendada nimekirja kõikidest hõivatud seadmetest seda tüüpi, et veenduda meie tegevuste õigsuses:
losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
\/dev\/loop1 0 0 0 0 \/mnt\/work\/lxd\/hddpool.img 0 512
\/dev\/loop0 0 0 1 0 \/var\/lib\/lxd\/disks\/ssdpool.img 0 512Nimekirjast võib näha, et seadmes /dev/loop1 on ühendatud loopback-fail /mnt/work/lxd/hddpool.img, ja seadmes /dev/loop0 on ühendatud loopback-fail /var/lib/lxd/disks/ssdpool.img mis vastab vaikimisi Säilitustorn.
Järgmine käsk loob uue Säilitustorn LXD-s just ettevalmistatud loopback-faili põhjal. LXD vormindab loopback-faili /mnt/work/lxd/hddpool.img seadmestikus /dev/loop1 BTRFS failisüsteemi:
lxc storage create hddpool btrfs size=10GB source=\/dev\/loop1Väljendame kõiki Säilitustorn ekraanile:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | \/dev\/loop1 | 0 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | \/var\/lib\/lxd\/disks\/ssdpool.img | 0 |
+---------+-------------+--------+--------------------------------+---------+Loopback-faili automaatne lisamine loopback-seadmestikku
Pärast loomist Säilitustorn, vajadusel, saab seda laiendada. BTRFS failisüsteemi põhjal täitke järgmised käsud: Säilitustorn sudo truncate -s +5G \/mnt\/work\/lxd\/hddpool.img sudo losetup -c \/dev\/loop1 sudo btrfs filesystem resize max \/var\/lib\/lxd\/storage-pools\/hddpool
Meil on üks väike probleem, kui host-süsteem taaskäivitub, siis failTurvalisus. Konteinerite privileegid
"langeb" seadmest välja /mnt/work/lxd/hddpool.img ja LXD teenus kukub laadimise ajal, kuna ei näe seda seadmest. Selle probleemi lahendamiseks on vajalik luua süsteemiteenus, mis ühendab selle faili seadmega /dev/loop1 host-süsteemi käivitamisel. /dev/loop1 fail tüübiga
Loome üksuse SystemD initsialiseerimissüsteemile: teenus ja /etc/systemd/system/ cat << EOF | sudo tee -a \/etc\/systemd\/system\/lxd-hddpool.service [Unit] Description=Losetup LXD Storage Pool (hddpool) After=local-fs.target[Service] Type=oneshot ExecStart=\/sbin\/losetup \/dev\/loop1 \/mnt\/work\/lxd\/hddpool.img RemainAfterExit=true[Install] WantedBy=local-fs.target EOF
Aktiveerime teenuse:Aktiveerime teenuse:
sudo systemctl enable lxd-hddpool
Loodud symbol /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.Pärast host-süsteemi taaskäivitamist kontrollime teenuse staatust:
systemctl status lxd-hddpool.service
● lxd-hddpool.service - Losetup LXD Storage Pool (hddpool)
Loaded: laetud (/etc/systemd/system/lxd-hddpool.service; lubatud; tootepool: keelatud)
Active: aktiivne (väljunud) alates Kol 2020-04-08 03:43:53 MSK; 1min 37s tagasi
Process: 711 ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img (kood=väljunud, staatus=0/EDUKAS)
Main PID: 711 (kood=väljunud, staatus=0/EDUKAS)
apr 08 03:43:52 manjaro systemd[1]: Käivitab Losetup LXD Storage Pool (hddpool)...
apr 08 03:43:53 manjaro systemd[1]: Lõpetas Losetup LXD Storage Pool (hddpool).Väljundist saame veenduda, et teenuse olek on active, vaatamata sellele, et meie skripti täitmine ühe käsuna lõpetati, andis see meile võimaluse RemainAfterExit=true.
Virtuaalse võrguswitšeri loomine
Kuna kõik konteineri protsessid tegelikult käivad isoleeritud host-süsteemis, kasutades selle südamikku, pakub LXD protsesside täiendava kaitse host-süsteemi juurde pääsemiseks, kus:
Privileegitud konteinerid — need on konteinerid, kus protsesside UID ja GID vastavad samale omanikule, mis on host-süsteemis. Näiteks, konteineris, mille UID on 0, on kõik õigused samad, mis host-süsteemis UID-ga 0 protsessil. Teisisõnu, konteineri root-kasutajal on kõik õigused mitte ainult konteineris, vaid ka host-süsteemis, kui ta suudab pääseda väljapoole konteineri isoleeritud nimesüsteemi.
Mitteprivileegitud konteinerid — need on konteinerid, kus protsessid kuuluvad omanikele UID ja GID numbriga vahemikus 0 kuni 65535, kuid host-süsteemis omanik maskeeritakse SubUID ja SubGID lisatud bittidega. Näiteks, konteineri UID=0 kasutaja tuvastatakse host-süsteemis kui
SubUID + UID. See kaitseb host-süsteemi, kuna kui mõni protsess konteineris suudab väljuda oma isoleeritud nimesüsteemist, saab ta suhelda host-süsteemiga ainult tundmatu, väga kõrge UID/GID-ga protsessina.
Vaikimisi on uutel konteineritel privileegitamata olek ja seetõttu peame määrama SubUID ja SubGID.
Loome kaks konfiguratsioonifaili, milles määrame SubUID ja SubGID maski vastavalt:
sudo touch /etc{/subuid,/subgid}
sudo usermod --add-subuids 1000000-1065535 root
sudo usermod --add-subgids 1000000-1065535 rootMuutuste rakendamiseks peab LXD teenus olema taaskäivitatud:
sudo systemctl restart lxdKonfiguratsiooniprofiil
Kuna me eelnevalt initsialiseeritud võrgu tähtsus ja masina initsialiseerimise tööriistadega lxd init ja lõime võrgu seadme lxdbr0, uurime selles jaotises lihtsalt LXD võrku ning kuidas luua virtuaalne lüliti (võrgusild) kliendi käsu abil.
Järgmine skeem näitab, kuidas lüliti (võrgusild) ühendab hosti ja konteinerid võrku:

Konteinerid saavad võrgu kaudu suhelda teiste konteineritega või hostiga, millel need konteinerid töötavad. Selleks on vajalik virtuaalsete võrkaartide ühendamine virtuaalse lülitiga. Alustame lüliti loomisega ning konteineri võrgu liidesed ühendatakse järgmistes peatükkides, kui konteiner ise on loodud.
Järgmine käsk loob lüliti koos alavõrguga 10.0.5.0/24 ja IPv4 aadressiga 10.0.5.1/24, samuti aktiveerib ipv4.nat et konteinerid saaksid hosti kaudu NAT-teenuse abil internetti pääseda:
lxc network create lxdbr0 ipv4.address=10.0.5.1/24 ipv4.nat=true ipv6.address=noneKontrollime LXD-s saadaval olevate võrgu seadmete loendit:
lxc network list
+--------+----------+---------+-------------+---------+
| NAME | TYPE | MANAGED | DESCRIPTION | USED BY |
+--------+----------+---------+-------------+---------+
| eno1 | physical | NO | | 0 |
+--------+----------+---------+-------------+---------+
| lxdbr0 | bridge | YES | | 0 |
+--------+----------+---------+-------------+---------+Samuti saab võrgu seadme loomise kontrollida Linuxi jaotuse sisseehitatud tööriista abil — ip link või ip addr:
ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:ee:7b:5a:6b:44 brd ff:ff:ff:ff:ff:ff
altname enp0s25
inet6 fe80::9571:11f3:6e0c:c07b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: lxdbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c2:38:90:df:cb:59 brd ff:ff:ff:ff:ff:ff
inet 10.0.5.1/24 scope global lxdbr0
valid_lft forever preferred_lft forever
inet6 fe80::c038:90ff:fedf:cb59/64 scope link
valid_lft forever preferred_lft forever
5: veth3ddab174@if4: mtu 1500 qdisc noqueue master lxdbr0 state UP group default qlen 1000
link/ether ca:c3:5c:1d:22:26 brd ff:ff:ff:ff:ff:ff link-netnsid 0Profiili redigeerimine
Igal konteineril LXD-s on oma konfigureerimise määratlemine ja võime seda laiendada globaalselt deklareeritud konfiguratsioonidega, mida nimetatakse konfiguratsiooniprofiilid. Konfiguratsiooniprofiilide rakendamine konteinerile järgib kaskaadmudelit, järgmine näide demonstreerib seda:

Selles näites on LXD-s loodud kolm profiili: Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist:, hddpool ja hostfs. Kõik kolm profiili on rakendatud konteinerile, millel on kohalik konfiguratsioon (hall ala). Profiil Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist: omab seadet root mille parameeter pool on ssdpool, kuid tänu konfiguratsiooni rakendamise kaskaadmudelile saame rakendada konteinerile profiili hddpool mille parameeter pool mis katab selle sama parameetri profiilist Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist: ja konteiner saab seadme konfiguratsiooni root parameetriga pool võrdne hddpool, samas kui profiil hostfs lihtsalt lisab konteinerisse uue seadme.
Selleks, et näha saadaolevate konfiguratsiooniprofiilide loendit, kasutatakse järgmist käsku:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+Kogu saadaolevate käskude loetelu profiiliga töötamiseks saab saada, lisades võtme --help:
lxc profile --help
Description:
Hallake profiile
Usage:
lxc profile [käsk]
Available Commands:
add Lisa profiile instantsidesse
assign Määrake profiilide kogumid instantsidele
copy Kopeerige profiilid
create Looge profiilid
delete Kustutage profiilid
device Hallake instantside seadmeid
edit Redigeerige profiili konfiguratsioone YAML vormingus
get Saage profiili konfiguratsioonivõtmete väärtused
list Loendage profiilid
remove Eemaldage profiilid instantsidest
rename Nimeta profiilid ümber
set Määrake profiili konfiguratsioonivõtmed
show Kuvage profiili konfiguratsioonid
unset Tühistage profiili konfiguratsioonivõtmedUute profiilide loomine
Vaikimisi konfiguratsiooniprofiil Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist: ei oma konteineri jaoks võrgukaardi konfiguratsiooni ja kõik uued loodud konteinerid ei oma võrku, nende jaoks tuleb luua kohalikud (dedikeeritud) võrguseadmed eraldi käsuga, kuid me saame luua konfiguratsiooniprofiilis ühtse võrguseadme, mis jagatakse kõigi nende konteinerite vahel, kes kasutavad seda profiili. Seega, kohe pärast uue konteineri loomise käsku on neil ühendus võrku. Samas ei ole piiranguid, me saame alati hiljem luua kohalikku võrguseadet, kui see on vajalik.
Järgmine käsk lisab konfiguratsiooniprofiili seadme eth0 tüüpi nic mis on ühendatud võrku lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0Oluline on märkida, et kuna oleme tegelikult seadme lisanud konfigureerimisprofiili, siis kui me määraksime seadmele staatilise IP-aadressi, jagaksid kõik konteinerid, mis kasutavad seda profiili, sama IP-aadressi. Kui on vajalik luua konteiner, millel on eraldi staatiline IP-aadress, tuleks luua konteineri tasemel võrgu seadme konfiguratsioon (kohalik konfiguratsioon) IP-aadressi parameetriga, mitte profiili tasemel.
Kontrollime profiili:
lxc profile show default
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: \
pool: ssdpool
type: disk
name: default
used_by: []Selles profiilis näeme, et kõikide uute konteinerite jaoks luuakse kaks seadet (devices):
eth0— Seade tüüpnicühendatud lülitiga (võrgusillaga)lxdbr0root— Seade tüüpdiskmis kasutab salvestuspumpassdpool
Piltide hoidla
Kasutamiseks eelnevalt loodud Säilitustorn konteinerite jaoks loome konfigureerimisprofiili ssdroot kuhu lisame seadme tüüp disk määratud mount-punktiga / (root), mis kasutab eelnevalt loodud Säilitustorn — ssdpool:
lxc profile create ssdroot
lxc profile device add ssdroot root disk path=\ pool=ssdpoolSarnaselt loome seadme tüüp disk, kuid antud juhul kasutab Säilitustorn — hddpool:
lxc profile create hddroot
lxc profile device add hddroot root disk path=\ pool=hddpoolKontrollime konfiguratsiooniprofiile:
lxc profile show ssdroot
config: {}
description: ""
devices:
root:
path: \
pool: ssdpool
type: disk
name: ssdroot
used_by: []lxc profile show hddroot
config: {}
description: ""
devices:
root:
path: \
pool: hddpool
type: disk
name: hddroot
used_by: []Kaug-piltide hoidlad
Konteinerid luuakse piltidest, mis on spetsiaalselt kokku pandud jaotustest, mis ei sisalda Linuxi tuuma. Seega, enne konteineri käivitamist peab see olema selle pildi põhjal juurutatud. Piltide allikaks on kohalik hoidla, kuhu pildid laaditakse välisest hoidlast.
Kohalik piltide hoidla
Vaikimisi on LXD seadistatud piltide saamiseks kolmest kaugallikast:
- ubuntu: (stabiilsete Ubuntu piltide jaoks)
- ubuntu-daily: (päevaste Ubuntu piltide jaoks)
- images: (paljude teiste jaotuste jaoks)
lxc remote list
+-----------------+------------------------------------------+--------+--------+
| NAME | URL | PUBLIC | STATIC |
+-----------------+------------------------------------------+--------+--------+
| images | https://images.linuxcontainers.org | JAH | EI |
+-----------------+------------------------------------------+--------+--------+
| local (default) | unix:// | EI | JAH |
+-----------------+------------------------------------------+--------+--------+
| ubuntu | https://cloud-images.ubuntu.com/releases | JAH | JAH |
+-----------------+------------------------------------------+--------+--------+
| ubuntu-daily | https://cloud-images.ubuntu.com/daily | JAH | JAH |
+-----------------+------------------------------------------+--------+--------+Näiteks, hoidla ubuntu: omab järgmisi pilte:
lxc image -c dasut list ubuntu: | head -n 11
+----------------------------------------------+--------------+----------+------------+
| DESCRIPTION | ARCHITECTURE | SIZE | TYPE |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150728) | x86_64 | 153.72MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150819) | x86_64 | 152.91MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150906) | x86_64 | 154.69MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150930) | x86_64 | 153.86MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+Teatud veergude kuvamiseks kasutasime valikut -c parameetritega dasut, ning piiratud tulemuste arvu käsuga head.
Piltide loendi väljastamiseks on filtreerimine saadaval. Järgnev käsk kuvab kõik saadaval olevad arhitektuurid distributsioonist :
lxc image -c ldast list images:alpine/3.11
+------------------------------+--------------------------------------+--------------+
| ALIAS | DESCRIPTION | ARCHITECTURE |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11 (3 more) | Alpine 3.11 amd64 (20200220_13:00) | x86_64 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/arm64 (1 more) | Alpine 3.11 arm64 (20200220_13:00) | aarch64 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/armhf (1 more) | Alpine 3.11 armhf (20200220_13:00) | armv7l |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/i386 (1 more) | Alpine 3.11 i386 (20200220_13:01) | i686 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/ppc64el (1 more) | Alpine 3.11 ppc64el (20200220_13:00) | ppc64le |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/s390x (1 more) | Alpine 3.11 s390x (20200220_13:00) | s390x |
+------------------------------+--------------------------------------+--------------+LXD konfiguratsioon
Konteineri kasutamiseks peate esmalt lisama pildi globaalsetest hoidlatest kohalikku. kohalik:. Praegu on kohalik hoidla tühi, veenduda selles aitab käsk lxc pilt nimekiri. Kui meetodil loend ei ole määratud hoidlat, kasutatakse vaikimisi kohalikku hoidlat — kohalik:
lxc pilt nimekiri kohalik:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+Piltide haldamine hoidlas toimub järgmiste meetoditega:
Meeskond
Kirjeldus
lxc pilt alias
Halda pildi alias'e
lxc pilt kopeerida
Kopeerige pilte serverite vahel
lxc pilt delete
Kustuta pildid
lxc pilt edit
Muuda pildi omadusi
lxc pilt export
Eksport ja allalaadimine piltidest
lxc pilt import
Impordi pildid pildihoidlasse
lxc pilt info
Kuva kasulikke andmeid piltide kohta
lxc pilt loend
Nimekiri piltidest
lxc pilt värskenda
Värskenda pilte
lxc pilt näita
Kuva pildi omadused
Kopeerime pildi globaalsetest hoidlatest kohalikku images::
lxc pilt kopeeri images:alpine/3.11/amd64 kohalik: --alias=alpine3
Pilt kopeeritud edukalt!Loetleme kõik pildid, mis on praegu kohalikus hoidlas saadaval kohalik::
lxc pilt -c lfdatsu nimekiri kohalik:
+---------+--------------+------------------------------------+--------------+
| ALIAS | FINGERPRINT | DESCRIPTION | ARCHITECTURE |
+---------+--------------+------------------------------------+--------------+
| alpine3 | 73a3093d4a5c | Alpine 3.11 amd64 (20200220_13:00) | x86_64 |
+---------+--------------+------------------------------------+--------------+Konteineri loomine ja haldamine
Kuna interaktiivne režiim, toetab LXD ka mitteinteraktiivset režiimi, kus konfiguratsioon määratakse YAML-faili kujul, mis on eriline formaat, mis võimaldab kogu konfiguratsiooni seadistada korraga, vältides paljude interaktiivsete käskude täitmist, mis on käsitletud eespool, sealhulgas võrgu konfiguratsioon, profiilide loomine jne. Siin me seda valdkonda ei käsitle, võite sellega ise tutvuda. .
Järgmine interaktiivne käsk lxc konfiguratsioon mida me käsitleme, võimaldab seadistada konfiguratsiooni. Näiteks et laaditud pildid ei värskendataks automaatselt globaalsetest hoidlatest, saame selle käitumise aktiveerida järgmise käsuga:
lxc konfiguratsioon seadista images.auto_update_cached=falseStatsionaarse IP-aadressi seadistamine
Konteineri loomiseks kasutatakse käsku lxc init millele edastatakse väärtused hoidla:pilt ja seejärel soovitud konteineri identifikaator. Hoidla saab määrata kohalikuna. kohalik: ning igasuguse ülemaailmse. Kui hoidlat ei ole määratud, kasutatakse vaikimisi pildi leidmiseks kohalikku hoidlat. Kui pilt on määratud ülemaailmsest hoidlast, laaditakse see alguses kohalikku hoidlasse ja seejärel kasutatakse konteineri loomiseks.
Täidame järgmise käsu, et luua meie esimene konteiner:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddrootLähme süsteemselt läbi käsu võtmed, mida me siin kasutame:
alpine3— Märgib aliast (hüüdnime) pildile, mis on eelnevalt kohalikku hoidlasse laaditud. Kui selle pildi jaoks ei oleks aliast loodud, võib alati viidata pildile selle Sõrmjälg mille väljund kuvatakse tabelis.alp— Määrab konteineri identifikaatori--storage— See võtmeosa näitab, millisest Säilitustorn loodakse konteiner--profile— Need võtmed rakendavad konteineri konfiguratsiooni varem loodud konfiguratsiooniprofiilidelt järk-järgult
Käivitame konteineri, mis hakkab käivitama jaotuse init-süsteemi:
lxc start alpSamuti võib kasutada käsku lxc launch mis võimaldab ühendatud käske lxc init ja lxc start üheks toiminguks.
Kontrollime konteineri olekut:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME | STATE | IPV4 | IPV6 | TYPE | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | hddpool |
+------+---------+------------------+------+-----------+--------------+Kontrollime konteineri konfiguratsiooni:
lxc config show alp
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: vethb1fe71d8
volatile.eth0.hwaddr: 00:16:3e:5f:73:3e
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
devices:
root:
path: \/
pool: hddpool
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Jaotises profiilid saame veenduda, et see konteiner kasutab kahte konfiguratsiooniprofiili — Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist: ja hddroot. Sektsioonis seadmed saame leida ainult ühe seadme, kuna võrguseade loodi profiili tasemel Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist:Kuna näha kõiki seadmeid, mida konteiner kasutab, tuleb lisada võti --expanded:
lxc config show alp --expanded
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: vethb1fe71d8
volatile.eth0.hwaddr: 00:16:3e:5f:73:3e
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: \/
pool: hddpool
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Konteineri eemaldamine
Kui proovime seadistada IP-aadressi võrgu seadmele, eth0 käsklusega lxc config device set alp mis on mõeldud konteineri konfiguratsiooniks, saame veateate, mis ütleb, et seade ei eksisteeri, kuna seade eth0 mida konteiner kasutab, kuulub profiilile Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist::
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: Seade ei eksisteeriMuidugi, me saame seadistada staatilise IP-aadressi eth0 profiili seadmele, kuid see on kõigi konteinerite jaoks, mis seda profiili kasutavad, sama. Seetõttu lisame konteinerile pühendatud seadme:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5Seejärel tuleb konteiner taaskäivitada:
lxc restart alpKui me nüüd vaatame konteineri konfiguratsiooni, ei pea me rakendama valikut --expanded et näha võrgu seadet eth0, kuna me lõime selle konteineri tasemel ja see kattis sama seadme profiilis. Seejärel käivitame exec käsu ja ootame 5000 sekundit, et jätkata jälgimist::
lxc config show alp
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: veth2a1dc59d
volatile.eth0.hwaddr: 00:16:3e:0e:e2:71
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
devices:
eth0:
ipv4.address: 10.0.5.5
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
root:
path: \/
pool: hddpool
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Ligipääs konteinerile
Konteineri kustutamiseks kasutatakse käsku lxc delete, kuid enne konteineri kustutamist tuleb see peatada käsuga lxc stop:
lxc stop alplxc list
+------+---------+-------------------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+-------------------+------+-----------+-----------+
| alp | STOPPED | 10.0.5.10 (eth0) | | KONTENER | 0 |
+------+---------+-------------------+------+-----------+-----------+Kui oleme kinnitanud, et konteineri olek on STOPPIND, saab selle kustutada Säilitustorn:
lxc delete alpKonteineri ressursside haldamine
Käsk, mis võimaldab käivitada käske konteineris, mööda minnes võrguühendustest, on lxc exec , mis täidab käske konteineris ilma süsteemi shelli käivitamata. Kui soovite käivitada käsu shelli mustritega, nagu muutujad, failide suunamine (pipe) jne, tuleb shelli selgelt käivitada ja käsk edastada argumendina, näiteks:
lxc exec alp -- \/bin\/sh -c "echo $HOME"Käsk sisaldas erimärki erimärgi jaoks $ et muutujat $HOME ei tõlgendataks hostmasinas, vaid tõlgendataks ainult konteineris.
Samuti on võimalik käivitada interaktiivne shell ning seansi lõpetamiseks vajutada kuuma klahvi CTRL+D:
lxc exec alp -- \/bin\/shRAM (OZU) ressursside piiramise seadistamine
LXD-s saab konteineri ressursse hallata spetsiaalse seadistuskomplekti abil. Konteneri seadistusparameetrite täieliku loendi leiate .
CPU (CP) ressursside piiramise seadistamine
Parameeter limits.memory piirab RAM-i mahtu, mis on konteinerile saadaval. Väärtusena näidatakse arvu ja ühte .
Seadistame konteineri jaoks RAM-i piiri 256 MB:
lxc config set alp limits.memory 256MBSamuti on olemas teised mälu piiramise parameetrid:
limits.memory.enforcelimits.memory.hugepageslimits.memory.swaplimits.memory.swap.priority
Meeskond lxc config show näitab kogu konteineri konfiguratsiooni, sealhulgas rakendatud ressursipiirangut, mis on määratud:
lxc config show alp
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200220_13:00)
image.os: Alpine
image.release: "3.11"
image.serial: "20200220_13:00"
image.type: squashfs
limits.memory: 256MB
volatile.base_image: 73a3093d4a5ce0148fd84b95369b3fbecd19a537ddfd2e2d20caa2eef0e8fd60
volatile.eth0.host_name: veth75b6df07
volatile.eth0.hwaddr: 00:16:3e:a1:e7:46
volatile.idmap.base: "0"
volatile.idmap.current: '[]'
volatile.idmap.next: '[]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""Kettaruumi piiramise seadistamine
CPU ressursside piiramiseks on olemas mitu :
limit.cpu— seob konteineri ühe või mitme CPU tuumagalimits.cpu.allowance— haldab kas CFS ajakava kvote, kui aeg on piiratud, või üldist mehanismi CPU ressursside jagamiseks, kui on möödunud protsent:limits.cpu.priority— ajakava prioriteet, kui mitmetele näidistele, mis jagavad protsessorihulki, on määratud sama protsent protsessoritest
lxc config set alp limits.cpu.allowance 40%lxc config show alp
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200220_13:00)
image.os: Alpine
image.release: "3.11"
image.serial: "20200220_13:00"
image.type: squashfs
limits.cpu.allowance: 40%
limits.memory: 256MB
volatile.base_image: 73a3093d4a5ce0148fd84b95369b3fbecd19a537ddfd2e2d20caa2eef0e8fd60
volatile.eth0.host_name: veth75b6df07
volatile.eth0.hwaddr: 00:16:3e:a1:e7:46
volatile.idmap.base: "0"
volatile.idmap.current: '[]'
volatile.idmap.next: '[]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""Ressursikasutuse statistika
Lisaks piirangutele nagu limits.read, limits.write saame ka piirata konteineri kettaruumi kasutamist (töötas ainult ZFS või BTRFS):
lxc config device set alp root size=2GBPärast seadistamist saame parameetris devices.root.size veenduda seatud piirangus:
lxc config show alp
...
devices:
root:
path: \/
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Kasutatud kettakvootide vaatamiseks saame kasutada käsku lxc info:
lxc info alp
...
Resources:
Processes: 5
Disk usage:
root: 1.05GB
CPU usage:
CPU usage (in seconds): 1
Memory usage:
Memory (current): 5.46MB
Network usage:
eth0:
Bytes received: 802B
Bytes sent: 1.59kB
Packets received: 4
Packets sent: 14
lo:
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0Kuigi me seadsime konteineri juurseadmestiku piiriks 2GB, süsteemi utiliidid nagu df ei näe seda piiri. Selleks teeme väikese testi ja uurime, kuidas see töötab.
Loome 2 uut identset konteinerit samasse Säilitustorn (hddpool):
lxc init alpine3 alp1 --storage=hddpool --profile=default --profile=hddroot
lxc init alpine3 alp2 --storage=hddpool --profile=default --profile=hddrootlxc list
+------+---------+------------------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+------------------+------+-----------+-----------+
| alp1 | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | 0 |
+------+---------+------------------+------+-----------+-----------+
| alp2 | RUNNING | 10.0.5.30 (eth0) | | CONTAINER | 0 |
+------+---------+------------------+------+-----------+-----------+Loome ühte konteinerit 1GB suurusega faili:
lxc exec alp1 -- dd if=\/dev\/urandom of=file.img bs=1M count=1000Veendume, et fail on loodud:
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.imgKui vaatame teises konteineris, et kontrollida faili olemasolu samas kohas, siis seda faili ei ole, mis on oodatud, kuna konteinerid loovad omaette Säilituse maht samasse Säilitustorn:
lxc exec alp2 -- ls -lh
total 0Kuid võrrelgem väärtusi, mida väljundit edastavad df ühes ja teises konteineris:
lxc exec alp1 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
\/dev\/loop1 btrfs 9.3G 1016.4M 7.8G 11% \/
...lxc exec alp2 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
\/dev\/loop1 btrfs 9.3G 1016.4M 7.8G 11% \/
...Seade /dev/loop1 moodustatakse kui juurdseade, mida Säilitustorn need konteinerid kasutavad, seetõttu jagavad nad selle mahtu omavahel.
Töötlus jääkaadritega
Konteineri ressursside tarbimise statistikat saab vaadata käsu abil:
lxc info alp
Name: alp
Location: none
Remote: unix:\/\/
Architecture: x86_64
Created: 2020\/04\/08 18:05 UTC
Status: Running
Type: container
Profiles: default, hddroot
Pid: 19219
Ips:
eth0: inet 10.0.5.5 veth2a1dc59d
eth0: inet6 fe80::216:3eff:fe0e:e271 veth2a1dc59d
lo: inet 127.0.0.1
lo: inet6 ::1
Resources:
Processes: 5
Disk usage:
root: 495.62kB
CPU usage:
CPU usage (in seconds): 1
Memory usage:
Memory (current): 4.79MB
Network usage:
eth0:
Bytes received: 730B
Bytes sent: 1.59kB
Packets received: 3
Packets sent: 14
lo:
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0Ubuntu 19.10 distributsioonis sisaldab pakett
LXD võimaldab luua salvestusi ja taastada konteineri seisundit neist.
Salvestuse loomiseks kasutage järgmist käsku:
lxc snapshot alp snapshot1Käsk lxc snapshot ei oma võtit loend, seetõttu, et vaadata salvestuste loendit, tuleb kasutada käsku, mis näitab konteineri üldinfot:
lxc info alp
...
...
Snapshots:
snapshot1 (võetud 2020/04/08 18:18 UTC) (stateless)Kontseptsiooni taastamine snapshot'ist on võimalik käsuga lxc restore näidates konteinerit, mille jaoks taastamine toimub, ja snapshot'i nime:
lxc restore alp snapshot1Järgmine käsk on mõeldud snapshot'i kustutamiseks. Pange tähele, et käsklus ei sarnane teistega, siin tuleb konteineri nime järel kasutada kaldkriipsu. Kui kaldkriips unustada, tõlgendatakse snapshot'i kustutamise käsku konteineri kustutamise käskuna!
lxc delete alp/snapshot1Eelnimetatud näites käsitlesime nn stateless-snapshot'e. LXD-l on ka teistsugune snapshot tüüp — stateful, kus säilitatakse konteineris kõigi protsesside praegune olek. Stateful-snapshot'itega on seotud rida huvitavaid ja kasulikke funktsioone.
Mis veel?
- Python arendajatele on saadaval moodul mis pakub API-d LXD-le
UUENDAMINE 10.04.2020 15:00: Lisatud navigeerimine
Allikas: habr.com
