LXD - Linuxi konteinersüsteemide põhifunktsioonid

LXD - Linuxi konteinersüsteemide põhifunktsioonid

LXD on järgmise põlvkonna süsteemikonteinerite haldur, nii öeldakse allikas. See pakub virtuaalmasinatele sarnast kasutajaliidest, kuid kasutab selle asemel Linuxi konteinereid.

LXD tuum on privilegeeritud deemon (juurõigustega teenus), mis pakub REST API-d nii kohaliku unixi pesa kaudu kui ka võrgu kaudu, kui vastav konfiguratsioon on installitud. Kliendid, näiteks LXD-ga kaasas olev käsureatööriist, esitavad taotlusi selle REST API kaudu. See tähendab, et olenemata sellest, kas kasutate juurdepääsu kohalikule või kaughostile, töötab kõik samamoodi.

Selles artiklis me ei peatu LXD kontseptsioonidel üksikasjalikult; me ei võta arvesse kõiki dokumentatsioonis kirjeldatud saadaolevaid võimalusi, sealhulgas hiljutist juurutamist LXD uusimates versioonides, mis toetavad QEMU virtuaalmasinaid paralleelselt konteineritega. Selle asemel õpime ainult konteinerihalduse põhitõdesid – salvestusbasseinide seadistamist, võrgu loomist, konteineri käitamist, ressursipiirangute rakendamist ja hetktõmmiste kasutamist, et saaksite LXD-st põhiteadmised ja konteinerite kasutamist Linuxis.

Täieliku teabe saamiseks vaadake ametlikku allikat:

Navigatsioon

Paigaldamine LXD ^

LXD installimine Ubuntu distributsioonidesse ^

Ubuntu 19.10 jaotuspaketis lxd on saade sisse lülitatud klõpsatav pakett:

apt search lxd

lxd/eoan 1:0.7 all
  Transitional package - lxd -> snap (lxd)

See tähendab, et korraga installitakse kaks paketti, üks süsteemipaketina ja teine ​​kiirpaketina. Kahe paketi installimine süsteemi võib tekitada probleeme, kus süsteemipakett võib muutuda orvuks, kui snap-paketihaldur snap-paketi eemaldab.

Leia pakett lxd snap-i hoidlas saate kasutada järgmist käsku:

snap find lxd

Name             Version        Summary
lxd              3.21           System container manager and API
lxd-demo-server  0+git.6d54658  Online software demo sessions using LXD
nova             ocata          OpenStack Compute Service (nova)
nova-hypervisor  ocata          OpenStack Compute Service - KVM Hypervisor (nova)
distrobuilder    1.0            Image builder for LXC and LXD
fabrica          0.1            Build snaps by simply pointing a web form to...
satellite        0.1.2          Advanced scalable Open source intelligence platform

Käsu käivitamisega list saate veenduda, et pakett lxd pole veel installitud:

snap list

Name  Version    Rev   Tracking  Publisher   Notes
core  16-2.43.3  8689  stable    canonical✓  core

Hoolimata asjaolust, et LXD on kiirpakett, tuleb see installida süsteemipaketi kaudu lxd, mis loob süsteemis vastava grupi, sisse vajalikud utiliidid /usr/bin jne

sudo apt update
sudo apt install lxd

Veenduge, et pakett oleks installitud kiirpaketina:

snap list

Name  Version    Rev    Tracking  Publisher   Notes
core  16-2.43.3  8689   stable    canonical✓  core
lxd   3.21       13474  stable/…  canonical✓  -

LXD installimine Arch Linuxi distributsioonidesse ^

LXD paketi installimiseks süsteemi peate käivitama järgmised käsud, esimene värskendab hoidlas saadaolevate süsteemi pakettide loendit, teine ​​installib paketi otse:

sudo pacman -Syyu && sudo pacman -S lxd

Pärast paketi installimist, et tavakasutaja saaks LXD-d hallata, tuleb see lisada süsteemigruppi lxd:

sudo usermod -a -G lxd user1

Veendume, et kasutaja user1 gruppi lisatud lxd:

id -Gn user1

user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd

Kui rühm lxd ei ole loendis nähtav, siis peate kasutajaseansi uuesti aktiveerima. Selleks tuleb välja logida ja sama kasutaja alt sisse logida.

Aktiveeri sisse systemd LXD teenuse laadimine süsteemi käivitamisel:

sudo systemctl enable lxd

Alustame teenusega:

sudo systemctl start lxd

Teenuse oleku kontrollimine:

sudo systemctl status lxd

Salvestusruum LXD (salvestusruum) ^

Enne lähtestamise alustamist peame mõistma, kuidas LXD-s salvestusruum on loogiliselt paigutatud.

Salvestus (Säilitamine) koosneb ühest või mitmest Hoiubassein mis kasutab ühte toetatud failisüsteemidest, näiteks ZFS, BTRFS, LVM või tavalisi katalooge. iga Hoiubassein on jagatud köideteks (Salvestusmaht), mis sisaldavad pilte, konteinereid või muul eesmärgil andmeid.

  • Pildid - need on spetsiaalselt kokkupandud distributsioonid ilma Linuxi tuumata ja saadaval välistest allikatest
  • Konteinerid - need on piltidest juurutatud distributsioonid, kasutamiseks valmis
  • Hetketõmmised - need on hetktõmmised konteinerite olekust, mille juurde saate naasta

LXD - Linuxi konteinersüsteemide põhifunktsioonid

LXD-s salvestusruumi haldamiseks kasutage käsku lxc storage sertifikaat, mille saate võtme täpsustades - lxc storage --help

Järgmine käsk kuvab kõigi loendi Hoiubassein LXD-mälus:

lxc storage list

+---------+-------------+--------+--------------------------------+---------+
|  NAME   | DESCRIPTION | DRIVER |             SOURCE             | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool |             | btrfs  | /dev/loop1                     | 2       |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool |             | btrfs  | /var/lib/lxd/disks/ssdpool.img | 4       |
+---------+-------------+--------+--------------------------------+---------+

Kõigi loendi vaatamiseks Salvestusmaht valitud Hoiubassein teenindab meeskonda lxc storage volume list:

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, kui selleks Hoiubassein Loomisel valiti BTRFS-failisüsteem, seejärel hankige loend Salvestusmaht või alamhulgad BTRFS-i tõlgenduses saate kasutada selle failisüsteemi tööriistakomplekti:

sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/hddpool

ID 257 gen 818 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3

sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/ssdpool

ID 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

LXD lähtestamine ^

Enne konteinerite loomist ja kasutamist peate tegema üldise LXD lähtestamise, mis loob ja konfigureerib võrgu ja salvestusruumi. Seda saab teha käsitsi, kasutades standardseid kliendikäske, mis on saadaval loendis käsu kutsumisega lxc --help või lähtestamisviisardi abil lxd init vastates mõnele küsimusele.

Salvestusbasseini failisüsteemi valimine ^

Initsialiseerimise ajal esitab LXD mitmeid küsimusi, sealhulgas vaikefailisüsteemi tüübi määramise Hoiubassein. Vaikimisi on selle jaoks valitud BTRFS-failisüsteem. Pärast loomist on võimatu teisele FS-ile üle minna. Soovitatav on valida FS funktsioonide võrdlustabel:

tunnusjoon
kataloog
Btrfs
LVM
ZFS
CEPH

Optimeeritud piltide salvestamine
ei
jah
jah
jah
jah

Optimeeritud eksemplari loomine
ei
jah
jah
jah
jah

Optimeeritud hetktõmmiste loomine
ei
jah
jah
jah
jah

Optimeeritud pildiedastus
ei
jah
ei
jah
jah

Optimeeritud eksemplari ülekandmine
ei
jah
ei
jah
jah

kopeerida kirjutama
ei
jah
jah
jah
jah

Plokipõhine
ei
ei
jah
ei
jah

Kohene kloonimine
ei
jah
jah
jah
jah

Salvestusdraiver, mida saab kasutada konteineris
jah
jah
ei
ei
ei

Taastamine vanematest hetktõmmistest (mitte uusim)
jah
jah
jah
ei
jah

Säilituskvoodid
jah (*)
jah
jah
jah
ei

Võrgu ja salvestusbasseini lähtestamine viisardi abil ^

Järgmine käsk, mida vaatame, soovitab seadistada LXD põhikomponendid, vastates lihtsatele küsimustele, kasutades lähtestamisviisardi.

Käivita käsk lxc init ja sisestage vastused küsimustele pärast koolonit, nagu on näidatud allolevas näites, või muutke neid vastavalt oma tingimustele:

lxd init

Would you like to use LXD clustering? (yes/no) [default=no]: 
Do you want to configure a new storage pool? (yes/no) [default=yes]: 
Name of the new storage pool [default=default]: ssdpool         
Name of the storage backend to use (lvm, btrfs, dir) [default=btrfs]: 
Create a new BTRFS pool? (yes/no) [default=yes]: 
Would you like to use an existing block device? (yes/no) [default=no]: 
Size in GB of the new loop device (1GB minimum) [default=15GB]: 10GB
Would you like to connect to a MAAS server? (yes/no) [default=no]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: 
What should the new bridge be called? [default=lxdbr0]: 
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.0.5.1/24
Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]: 
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like LXD to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] no
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: 

Täiendava salvestusruumi loomine ^

Eelmises etapis lõime Hoiubassein millele anti nimi ssdpool ja mille fail asub minu süsteemis aadressil /var/lib/lxd/disks/ssdpool.img. See failisüsteemi aadress vastab minu arvuti füüsilisele SSD-draivile.

Järgmised toimingud, et laiendada arusaamist tema rollist Hoiubassein hoidlas loome teise Hoiubassein mis asub füüsiliselt teist tüüpi kõvakettal. Probleem on selles, et LXD ei luba teil luua Hoiubassein aadressist väljas /var/lib/lxd/disks/ ja isegi sümboolsed lingid ei tööta, vaadake arendaja vastust. Initsialiseerimise/vormindamise ajal saame sellest piirangust mööda minna Hoiubassein määrates väärtuse tagasisilmusfaili tee asemel plokkseadmena, määrates selle võtmes source.

Niisiis, enne loomist Hoiubassein peate määrama oma failisüsteemis tagasisilmusfaili või olemasoleva partitsiooni, mida see kasutab. Selleks loome ja kasutame faili, mille suuruse piirame 10 GB-ni:

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 tagasisilmusfaili tasuta loopback-seadmega:

sudo losetup --find --show /mnt/work/lxd/hddpool.img

/dev/loop1

Tänu võtmele --show käsu täitmine tagastab ekraanile selle seadme nime, millega meie loopback-fail on ühendatud. Vajadusel saame kuvada kõigi seda tüüpi hõivatud seadmete loendi, et veenduda meie toimingute õ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     512

Loendist leiate, et seadmel on /dev/loop1 loopback fail on kaasas /mnt/work/lxd/hddpool.imgja seadmes /dev/loop0 loopback fail on kaasas /var/lib/lxd/disks/ssdpool.img mis vastab vaikeväärtusele Hoiubassein.

Järgmine käsk loob uue Hoiubassein LXD-s, mis põhineb äsja koostatud loopback-failil. LXD vormindab tagasisilmusfaili /mnt/work/lxd/hddpool.img seadmes /dev/loop1 BTRFS-failisüsteemi jaoks:

lxc storage create hddpool btrfs size=10GB source=/dev/loop1

Kuvame kõigi loendi Hoiubassein ekraanile:

lxc storage list

+---------+-------------+--------+--------------------------------+---------+
|  NAME   | DESCRIPTION | DRIVER |             SOURCE             | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool |             | btrfs  | /dev/loop1                     | 0       |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool |             | btrfs  | /var/lib/lxd/disks/ssdpool.img | 0       |
+---------+-------------+--------+--------------------------------+---------+

Salvestusbasseini suuruse suurendamine ^

Pärast loomist Hoiubassein, vajadusel saab seda laiendada. Sest Hoiubassein BTRFS-failisüsteemi põhjal käivitage järgmised käsud:

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

Tagasisilmusfaili automaatne sisestamine tagasisilmusseadme pessa ^

Meil on üks väike probleem hostisüsteemi taaskäivitamisel, fail /mnt/work/lxd/hddpool.img "lendab" seadmest välja /dev/loop1 ja LXD-teenus jookseb laadimisel kokku, kuna see ei näe seda selles seadmes. Selle probleemi lahendamiseks peate looma süsteemiteenuse, mis lisab selle faili seadmesse /dev/loop1 kui hostsüsteem käivitub.

Loome üksus faili tüüp teenus в /etc/systemd/system/ SystemD lähtestamissüsteemi jaoks:

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

Aktiveerige teenus:

sudo systemctl enable lxd-hddpool

Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.

Pärast hostisüsteemi taaskäivitamist kontrollime teenuse olekut:

systemctl status lxd-hddpool.service 

● lxd-hddpool.service - Losetup LXD Storage Pool (hddpool)
     Loaded: loaded (/etc/systemd/system/lxd-hddpool.service; enabled; vendor preset: disabled)
     Active: active (exited) since Wed 2020-04-08 03:43:53 MSK; 1min 37s ago
    Process: 711 ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img (code=exited, status=0/SUCCESS)
   Main PID: 711 (code=exited, status=0/SUCCESS)

апр 08 03:43:52 manjaro systemd[1]: Starting Losetup LXD Storage Pool (hddpool)...
апр 08 03:43:53 manjaro systemd[1]: Finished Losetup LXD Storage Pool (hddpool).

Väljundist saame kontrollida, kas teenuse olek on aktiivne, hoolimata asjaolust, et meie skripti täitmine ühest käsust oli lõpule viidud, võimaldas see valik meil seda teha RemainAfterExit=true.

Ohutus. Konteineri privileegid ^

Kuna kõik konteinerprotsessid töötavad tegelikult hostsüsteemis isoleeritult, kasutades selle tuuma, pakub LXD, et veelgi kaitsta konteineriprotsesside juurdepääsu hostsüsteemile, protsessi privileege, kus:

  • Privilegeeritud konteinerid - need on konteinerid, milles UID ja GID-ga protsessid vastavad samale omanikule mis hostsüsteemis. Näiteks protsessil, mis töötab konteineris, mille UID on 0, on kõik samad juurdepääsuõigused kui hostsüsteemi protsessil, mille UID on 0. Teisisõnu, konteineri juurkasutaja omab kõiki õigusi mitte ainult konteineris, aga ka hostsüsteemis, kui ta saab väljuda konteineri isoleeritud nimeruumist.

  • Privilegeerimata konteinerid - need on konteinerid, milles protsessid kuuluvad UID ja GID omanikule numbriga 0 kuni 65535, kuid hostsüsteemi jaoks on omanik maskeeritud vastavalt lisatud SubUID ja SubGID bittide abil. Näiteks kasutajat, kelle konteineris on UID=0, nähakse hostsüsteemis kui SubUID + UID. See kaitseb hostisüsteemi, sest kui mõni konteineris olev protsess suudab oma isoleeritud nimeruumist välja pääseda, saab see hostsüsteemiga suhelda ainult tundmatu, väga kõrge UID/GID-ga protsessina.

Vaikimisi on vastloodud konteineritel privilegeerimata olek ja seetõttu peame määratlema SubUID ja SubGID.

Loome kaks konfiguratsioonifaili, milles seame vastavalt SubUID ja SubGID maski:

sudo touch /etc{/subuid,/subgid}
sudo usermod --add-subuids 1000000-1065535 root 
sudo usermod --add-subgids 1000000-1065535 root

Muudatuste rakendamiseks tuleb LXD teenus taaskäivitada:

sudo systemctl restart lxd

Virtuaalse võrgu lüliti loomine ^

Kuna oleme varem võrgu lähtestamisviisardi abil initsialiseerinud lxd init ja lõi võrguseadme lxdbr0, siis selles osas tutvume lihtsalt LXD võrgundusega ja sellega, kuidas kliendikäsku kasutades virtuaalset lülitit (silda) luua.

Järgmine diagramm näitab, kuidas lüliti (sild) ühendab hosti ja konteinerid võrku:

LXD - Linuxi konteinersüsteemide põhifunktsioonid

Konteinerid saavad võrgu kaudu suhelda teiste konteineritega või hostiga, kus neid konteinereid teenindatakse. Selleks tuleb siduda konteinerite virtuaalsed võrgukaardid virtuaalse lülitiga. Esmalt loome lüliti ja konteineri võrguliidesed lingitakse järgmistes peatükkides pärast konteineri enda loomist.

Järgmine käsk loob alamvõrguga lüliti 10.0.5.0/24 ja IPv4 aadress 10.0.5.1/24ja sisaldab ka ipv4.nat et konteinerid saaksid NAT-teenust kasutades hosti kaudu Internetti juurde pääseda:

lxc network create lxdbr0 ipv4.address=10.0.5.1/24 ipv4.nat=true ipv6.address=none

LXD-s saadaolevate võrguseadmete loendi kontrollimine:

lxc network list

+--------+----------+---------+-------------+---------+
|  NAME  |   TYPE   | MANAGED | DESCRIPTION | USED BY |
+--------+----------+---------+-------------+---------+
| eno1   | physical | NO      |             | 0       |
+--------+----------+---------+-------------+---------+
| lxdbr0 | bridge   | YES     |             | 0       |
+--------+----------+---------+-------------+---------+

Samuti saate kontrollida, kas võrguseade on loodud Linuxi distributsiooni standardtööriista abil - ip link või ip addr:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 0

Konfiguratsiooniprofiil ^

Igal LXD konteineril on oma konfiguratsioon ja seda saab laiendada globaalselt deklareeritud konfiguratsioonidega konfiguratsiooniprofiilid. Konteineri profiilide rakendamisel konteinerile on kaskaadmudel, seda demonstreerib järgmine näide:

LXD - Linuxi konteinersüsteemide põhifunktsioonid

Selles näites on LXD süsteemis loodud kolm profiili: default, hddpool и hostfs. Kõik kolm profiili rakendatakse konteinerile, millel on kohalik konfiguratsioon (hall ala). Profiil default on seade root millel on parameeter pool on ssdpool, kuid tänu kaskaadkonfiguratsiooni rakenduse mudelile saame konteinerile profiili rakendada hddpool millel on parameeter pool alistab sama parameetri profiilist default ja konteiner saab seadme konfiguratsiooni root parameetriga pool võrdne hddpoolja profiil hostfs lihtsalt lisab konteinerisse uue seadme.

Saadaolevate konfiguratsiooniprofiilide loendi vaatamiseks kasutage järgmist käsku:

lxc profile list

+---------+---------+
|  NAME   | USED BY |
+---------+---------+
| default | 1       |
+---------+---------+
| hddroot | 0       |
+---------+---------+
| ssdroot | 1       |
+---------+---------+

Profiiliga töötamiseks saadaolevate käskude täieliku loendi saate võtme lisamisega --help:

lxc profile --help

Description:
  Manage profiles

Usage:
  lxc profile [command]

Available Commands:
  add         Add profiles to instances
  assign      Assign sets of profiles to instances
  copy        Copy profiles
  create      Create profiles
  delete      Delete profiles
  device      Manage instance devices
  edit        Edit profile configurations as YAML
  get         Get values for profile configuration keys
  list        List profiles
  remove      Remove profiles from instances
  rename      Rename profiles
  set         Set profile configuration keys
  show        Show profile configurations
  unset       Unset profile configuration keys

Profiili muutmine ^

Vaikekonfiguratsiooniprofiil default ei oma konteineri jaoks võrgukaardi konfiguratsiooni ja kõigil vastloodud konteineritel pole võrku, nende jaoks on vaja luua eraldi käsuga kohalikud (spetsiaalsed) võrguseadmed, kuid konfiguratsioonis saame luua globaalse võrguseadme profiil, mida jagatakse kõigi seda profiili kasutavate konteinerite vahel. Nii on neil kohe pärast uue konteineri loomise käsku võrk, millel on juurdepääs võrgule. Samas piiranguid pole, vajadusel saame alati hiljem luua kohaliku võrgu seadme.

Järgmine käsk lisab seadme konfiguratsiooniprofiili eth0 tüüp nic võrku ühendatud lxdbr0:

lxc profile device add default eth0 nic network=lxdbr0 name=eth0

Oluline on märkida, et kuna me tegelikult lisasime seadme konfiguratsiooniprofiili, siis kui määrasime seadmes staatilise IP-aadressi, jagavad kõik seda profiili kasutavad konteinerid sama IP-aadressi. Kui on vaja luua konteinerile eraldatud staatilise IP-aadressiga konteiner, peaksite võrguseadme konfiguratsiooni looma IP-aadressi parameetriga konteineri tasemel (kohalik konfiguratsioon), mitte profiili tasemel.

Vaatame profiili üle:

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: []

Sellel profiilil näeme, et kõigi vastloodud konteinerite jaoks luuakse kaks seadet:

  • eth0 - Seadme tüüp nic ühendatud lülitiga (võrgusild) lxdbr0
  • root - Seadme tüüp disk mis kasutab hoiubasseini ssdpool

Uute profiilide loomine ^

Varem loodud kasutamiseks Hoiubassein konteinerid, looge konfiguratsiooniprofiil ssdroot millesse lisame seadme nagu disk koos kinnituspunktiga / (juur), kasutades eelnevalt loodud Hoiubassein - ssdpool:

lxc profile create ssdroot
lxc profile device add ssdroot root disk path=/ pool=ssdpool

Samamoodi loome seadme nagu disk, kuid antud juhul kasutades Hoiubassein - hddpool:

lxc profile create hddroot
lxc profile device add hddroot root disk path=/ pool=hddpool

Konfiguratsiooniprofiilide kontrollimine:

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: []

Piltide hoidla ^

Konteinerid luuakse piltidest, mis on spetsiaalselt kokku pandud distributsioonid, millel pole Linuxi tuuma. Seetõttu tuleb see enne konteineri käivitamist sellelt pildilt juurutada. Piltide allikaks on kohalik hoidla, kuhu laaditakse alla pilte välistest hoidlatest.

Piltide kaughoidlad ^

Vaikimisi on LXD konfigureeritud pilte vastu võtma kolmest kaugallikast:

  • ubuntu: (stabiilsete Ubuntu piltide jaoks)
  • ubuntu igapäevane: (igapäevaste Ubuntu piltide jaoks)
  • pildid: (paljude muude distrode jaoks)

lxc remote list

+-----------------+------------------------------------------+--------+--------+
|      NAME       |                   URL                    | PUBLIC | STATIC |
+-----------------+------------------------------------------+--------+--------+
| images          | https://images.linuxcontainers.org       | YES    | NO     |
+-----------------+------------------------------------------+--------+--------+
| local (default) | unix://                                  | NO     | YES    |
+-----------------+------------------------------------------+--------+--------+
| ubuntu          | https://cloud-images.ubuntu.com/releases | YES    | YES    |
+-----------------+------------------------------------------+--------+--------+
| ubuntu-daily    | https://cloud-images.ubuntu.com/daily    | YES    | YES    |
+-----------------+------------------------------------------+--------+--------+

Näiteks hoidla ubuntu: on järgmised pildid:

lxc image -c dasut list ubuntu: | head -n 11

+----------------------------------------------+--------------+----------+------------+
|                   DESCRIPTION                | ARCHITECTURE |   SIZE   |   TYPE     |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150728)  | x86_64       | 153.72MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150819)  | x86_64       | 152.91MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150906)  | x86_64       | 154.69MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150930)  | x86_64       | 153.86MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+

Piiratud arvu veergude kuvamiseks kasutasime valikut -c parameetritega dasut, ja piiras käsuga ka loendi pikkust head.

Piltide loendi kuvamiseks on saadaval filtreerimine. Järgmine käsk loetleb kõik saadaolevad levitamisarhitektuurid AlpineLinux:

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        |
+------------------------------+--------------------------------------+--------------+

Kohalik pildihoidla ^

Konteineri kasutamise alustamiseks peate lisama pildi globaalsest hoidlast kohalikku local:. Nüüd on kohalik hoidla tühi, käsk veendub selles lxc image list. Kui meetod list ärge määrake hoidlat, siis kasutatakse vaikimisi kohalikku hoidlat - local:

lxc image list local:

+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+

Hoidlas olevaid pilte hallatakse järgmiste meetoditega.

Meeskond
Kirjeldus

lxc pilt alias
Piltide varjunimede haldamine

lxc pilt koopia
Kopeerige pilte serverite vahel

lxc pilt kustutama
Kustuta pildid

lxc pilt muuta
Redigeeri pildi atribuute

lxc pilt eksport
Eksportige ja laadige alla pilte

lxc pilt import
Importige pildid pildipoodi

lxc pilt info
Näita kasulikku teavet piltide kohta

lxc pilt nimekiri
Loendi pilte

lxc pilt refresh
Värskenda pilte

lxc pilt näitama
Kuva pildi atribuudid

Kopeerige pilt globaalsest hoidlast kohalikku hoidlasse images::

lxc image copy images:alpine/3.11/amd64 local: --alias=alpine3

Image copied successfully!

Kuvame kõigi kohalikus hoidlas praegu saadaolevate piltide loendi local::

lxc image -c lfdatsu list local:

+---------+--------------+------------------------------------+--------------+
|  ALIAS  | FINGERPRINT  |            DESCRIPTION             | ARCHITECTURE |
+---------+--------------+------------------------------------+--------------+
| alpine3 | 73a3093d4a5c | Alpine 3.11 amd64 (20200220_13:00) | x86_64       |
+---------+--------------+------------------------------------+--------------+

LXD konfiguratsioon ^

Lisaks interaktiivsele režiimile toetab LXD ka mitteinteraktiivset konfiguratsiooni installirežiimi, see on siis, kui konfiguratsioon määratakse YAML-faili kujul, mis on spetsiaalne vorming, mis võimaldab teil installida kogu konfiguratsiooni korraga, jättes täitmisest mööda. paljudest interaktiivsetest käskudest, mida selles artiklis eespool käsitleti, sealhulgas võrgu konfigureerimine, konfiguratsiooniprofiilide loomine jne. Me ei käsitle seda ala siin, saate seda ise kontrollida. dokumentatsioonis.

Järgmine interaktiivne käsk lxc config mida me vaatame, saate määrata konfiguratsiooni. Näiteks tagamaks, et kohalikku hoidlasse allalaaditud pilte ei värskendata automaatselt globaalsetest hoidlatest, saame selle käitumise lubada järgmise käsuga:

lxc config set images.auto_update_cached=false

Konteineri loomine ja haldamine ^

Konteineri loomiseks kasutage käsku lxc init millele väärtused edasi antakse репозиторий:образ ja seejärel konteineri soovitud ID. Hoidla saab määrata kohalikuks local: nii on ka iga globaalne. Kui hoidlat pole määratud, siis vaikimisi kasutatakse pildi otsimiseks kohalikku hoidlat. Kui pilt on määratud globaalsest hoidlast, laaditakse pilt esmalt alla kohalikku hoidlasse ja seejärel kasutatakse konteineri loomiseks.

Käivitame esimese konteineri loomiseks järgmise käsu:

lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot

Vaatame siin kasutatavaid käsuklahve järjekorras:

  • alpine3 — Varem kohalikku hoidlasse üles laaditud pildile on määratud varjunimi (alias). Kui selle pildi jaoks pole pseudonüümi loodud, saate selle pildi järgi alati viidata Sõrmejälg mis kuvatakse tabelis.
  • alp — Määrab konteineri identifikaatori
  • --storage — See klahv näitab, millises Hoiubassein luuakse konteiner
  • --profile — Need võtmed rakendavad konteinerisse konfiguratsiooni varem loodud konfiguratsiooniprofiilidest

Käivitame konteineri, mis hakkab käivitama distributsiooni init-süsteemi:

lxc start alp

Võite kasutada ka käsku lxc launch mis võimaldab meeskondi ühendada lxc init и lxc start ühes operatsioonis.

Konteineri seisukorra kontrollimine:

lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME |  STATE  |       IPV4       | IPV6 |   TYPE    | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp  | RUNNING | 10.0.5.46 (eth0) |      | CONTAINER | hddpool      |
+------+---------+------------------+------+-----------+--------------+

Konteineri konfiguratsiooni kontrollimine:

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 profiles saame olla kindlad, et see konteiner kasutab kahte konfiguratsiooniprofiili − default и hddroot. Jaotises devices saame tuvastada ainult ühe seadme, kuna võrguseade loodi profiili tasemel default. Kõigi konteineris kasutatavate seadmete nägemiseks peate lisama võtme --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: ""

Staatilise IP-aadressi määramine ^

Kui proovime määrata võrguseadmele IP-aadressi eth0 meeskond lxc config device set alp mõeldud konteineri konfiguratsiooni jaoks, siis saame veateate, mis teatab, et seadet pole olemas, kuna seade eth0 mida konteiner kasutab, kuulub profiili juurde default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Muidugi saame määrata staatilise IP-aadressi eth0 profiilis olevad seadmed, kuid see kehtib kõigi seda profiili kasutavate konteinerite puhul. Seetõttu lisame konteinerile spetsiaalse seadme:

lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5

Seejärel peate konteineri taaskäivitama:

lxc restart alp

Kui vaatame praegu konteineri konfiguratsiooni, ei pea me seda valikut kasutama --expanded võrguseadme nägemiseks eth0, kuna lõime selle konteineri tasemel ja see liikus profiilist üle sama seadme default:

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: ""

Mahuti eemaldamine ^

Konteineri eemaldamiseks kasutage käsku lxc delete, kuid enne konteineri eemaldamist tuleb see käsuga peatada lxc stop:

lxc stop alp

lxc list

+------+---------+-------------------+------+-----------+-----------+
| NAME |  STATE  |       IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
+------+---------+-------------------+------+-----------+-----------+
| alp  | STOPPED | 10.0.5.10 (eth0)  |      | CONTAINER | 0         |
+------+---------+-------------------+------+-----------+-----------+

Pärast seda, kui oleme veendunud, et konteineri olek on muutunud LÕPETATUD, saab selle eemaldada Hoiubassein:

lxc delete alp

Juurdepääs konteinerile ^

Käskude täitmiseks konteineris otse, võrguühendustest mööda minnes, kasutage käsku lxc exec mis täidab konteineris käske ilma süsteemi kesta käivitamata. Kui teil on vaja täita shellis käsk, kasutades kesta mustreid, nagu muutujad, failide ümbersuunamised (toru) jne, siis peate shell selgesõnaliselt käivitama ja käsu võtmena edastama, näiteks:

lxc exec alp -- /bin/sh -c "echo $HOME"

Käsk kasutas spetsiaalset paomärki erilise iseloomu jaoks $ nii et muutuja $HOME ei tõlgendatud hostmasinas, vaid seda tõlgendati ainult konteineri sees.

Samuti on võimalik käivitada interaktiivne kestarežiim ja seejärel seanss lõpetada kiirklahvi käivitamisega CTRL+D:

lxc exec alp -- /bin/sh

Konteinerite ressursside haldamine ^

LXD-s saate konteineriressursse hallata spetsiaalse konfiguratsioonikomplekti abil. Leiate konteineri konfiguratsiooniparameetrite täieliku loendi dokumentatsioonis.

RAM-i ressursside piiramine ^

Parameeter limits.memory piirab konteinerile saadaoleva RAM-i hulka. Väärtus on arv ja üks saadaolevad järelliited.

Määrame konteineri RAM-i limiidiks 256 MB:

lxc config set alp limits.memory 256MB

Samuti on mälu piiramiseks muid parameetreid:

  • limits.memory.enforce
  • limits.memory.hugepages
  • limits.memory.swap
  • limits.memory.swap.priority

Meeskond lxc config show võimaldab kuvada kogu konteineri konfiguratsiooni, sealhulgas rakendatud ressursipiirangu, mis oli 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: ""

CPU ressursi piirang ^

Protsessori ressursside piiramiseks on mitu võimalust. piirangute tüübid:

  • limit.cpu - seob konteineri ühe või mitme CPU südamikuga
  • limits.cpu.allowance - haldab CFS-i planeerija kvoote, kui tähtaeg on möödas, või universaalset protsessori ressursside jagamise mehhanismi, kui protsent on möödas
  • limits.cpu.priority - planeerija prioriteet, kui mitmele protsessorite komplekti jagavale eksemplarile määratakse sama protsessorite protsent

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: ""

Kettaruumi piirang ^

Lisaks piirangutele nagu limits.read, limits.write saame piirata ka konteineri tarbitava kettaruumi hulka (töötab ainult ZFS-i või BTRFS-iga):

lxc config device set alp root size=2GB

Pärast paigaldamist parameetris devices.root.size Saame kontrollida seatud limiiti:

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 käsust 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: 0

Hoolimata asjaolust, et oleme seadnud konteineri juurseadme piiranguks 2 GB, kasutavad süsteemiutiliidid, nagu df ei näe seda piirangut. Selleks viime läbi väikese testi ja uurime, kuidas see töötab.

Loome samas 2 uut identset konteinerit Hoiubassein (hddpool):

lxc init alpine3 alp1 --storage=hddpool --profile=default --profile=hddroot
lxc init alpine3 alp2 --storage=hddpool --profile=default --profile=hddroot

lxc 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 ühes konteineris 1 GB faili:

lxc exec alp1 -- dd if=/dev/urandom of=file.img bs=1M count=1000

Veenduge, et fail on loodud:

lxc exec alp1 -- ls -lh
total 1000M  
-rw-r--r--    1 root     root     1000.0M Mar 27 10:16 file.img

Kui vaatame teises konteineris, kontrollime faili olemasolu samas asukohas, siis seda faili seal pole, mis on ootuspärane, kuna konteinerid luuakse omaette Salvestusmaht samas Hoiubassein:

lxc exec alp2 -- ls -lh
total 0

Kuid võrdleme väärtusi, mida see toodab df ühel ja teisel konteineril:

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 monteeritud nii, nagu juurpartitsioon on Hoiubassein mida need konteinerid kasutavad, nii et nende maht jagatakse kahe vahel.

Ressursitarbimise statistika ^

Saate vaadata konteineri ressursitarbimise statistikat, kasutades käsku:

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: 0

Hetketõmmistega töötamine ^

LXD-l on võimalus luua hetktõmmiseid ja taastada nende põhjal konteineri olek.

Pildi loomiseks käivitage järgmine käsk:

lxc snapshot alp snapshot1

Meeskond lxc snapshot võtit pole saadaval listSeetõttu peate hetktõmmiste loendi vaatamiseks kasutama käsku, mis kuvab konteineri kohta üldist teavet:

lxc info alp
...
...
Snapshots:
  snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)

Konteineri saate hetktõmmisest taastada käsu abil lxc restore määrates konteineri, mille jaoks taastatakse, ja hetktõmmise varjunime:

lxc restore alp snapshot1

Hetketõmmise kustutamiseks kasutatakse järgmist käsku. Pange tähele, et käsu süntaks ei ole kõigi teistega sarnane; siin peate konteineri nime järel määrama kaldkriipsu. Kui kaldkriips on välja jäetud, tõlgendatakse hetktõmmise kustutamise käsku konteineri kustutamise käsuna!

lxc delete alp/snapshot1

Ülaltoodud näites vaatlesime niinimetatud olekuta hetktõmmiseid. LXD-l on teist tüüpi hetktõmmised – olekupõhine, mis salvestab kõigi konteineris olevate protsesside hetkeseisu. Olekupõhiste hetktõmmistega on seotud mitmeid huvitavaid ja kasulikke funktsioone.

Mida veel? ^

  • Pythoni arendajatele on saadaval moodul PyLXD mis pakub LXD-le API

VÄRSKENDUS 10.04.2020/15/00 XNUMX:XNUMX: Navigeerimine lisatud

Allikas: www.habr.com

Lisa kommentaar