LXD põhitõed: mis see on? Ja kuidas seda kasutada?
LXD-konteinerid pole saanud tähelepanu keskpunkti nagu Docker, kuid tegelikult on see palju lähemal operatsioonisüsteemi virtualiseerimise põhiideele. Kuid enne sinna jõudmist räägime kaasaegsest riistvarataseme virtualiseerimisest.
Riistvara virtualiseerimine
Traditsiooniline viis, kuidas VMware, VirtualBox, KVM ja muud sarnased tehnoloogiad töötavad, on see - teil on serveriklassi arvuti, ütleme 512 GB RAM-iga tipptasemel Xeoni protsessor, mida nimetatakse paljaks metalliks. Sellele installite opsüsteemi, mis käitab siis kas VMware'i, Virtualboxi või KVM-i.
Neid on erinevaid hüpervisorid, ja neid käitav operatsioonisüsteem on host operatsioonisüsteem.
Nüüd pakub hüpervisor järgmist - see jäljendab protsessorit, võrguliideseid, salvestuskettaid, mälu, sisend- ja väljundühendusi ja muid ressursse nii, et selle komplekti peale saab installida uue operatsioonisüsteemi virtuaalne riistvara. See uus operatsioonisüsteem on külalise operatsioonisüsteem ja see töötab virtuaalsel riistvaral, nagu oleks see siis, kui see oleks installitud füüsilisse masinasse, kuid seal on ka üks konks.
Kui mõtlete: „Kuid erinevate riistvaraseadmete jäljendamine tegeliku riistvara abil kõlab ebaefektiivselt ja aeglaselt.”Teil on täiesti õigus. Riistvarataseme virtualiseerimine on aeglane ja ebaefektiivne.
Pealegi on opsüsteemid ise kontrollifriigid. Kui eraldate külalise OS-ile 1 GB RAM-i ja 2 protsessori südamikku, võtab see õnnelikult kõik ressursid ka siis, kui selles töötavad rakendused kasutavad ainult murdosa sellest. Neid ressursse ei saa hüpervisor mujal kasutada.
See piirab oluliselt hüpervisori peal töötavate VM-ide arvu. Kui olete pilvemajutusteenuse pakkuja, tähendab see, et teie lõpptulemust tabatakse halvasti.
Konteinerite viis asju teha
Virtualiseeritud riistvara idee visatakse aknast välja, kui hakkame rääkima konteineritest ja täpsemalt LXD-st. Individuaalsete riistvararessursside jäljendamise asemel proovime operatsioonisüsteemi virtualiseerida.
Kui LX-i konteiner on üles keeratud, pakub OS ennast (see tähendab kernel, teegid kõik talle kättesaadavad ressursid) konteineris töötavatele rakendustele. Selles konteineris olevad kasutajad ja rakendused pole teadlikud väljaspool seda töötavatest rakendustest ja pakettidest ning vastupidi.
Mis puutub ressursside jaotamisse, siis saate lihtsalt märkida, et teatud konteineril pole lubatud kasutada rohkem kui näiteks 2 GB RAM-i ja 2 protsessorit. Nii, kui konteineris töötavad rakendused ei tee midagi intensiivset, saab ressursse hostikeskkonnas mujale paigutada.
Kui aga rakendused töötavad suure koormuse all, saavad nad palja metalli jõudluse!
Selle ilmne puudus on see, et külalisena ei saa käivitada ühtegi suvalist operatsioonisüsteemi. Sest erinevatel opsüsteemidel on üldse erinev arhitektuur. GNU / Linuxi kasutajate õnneks pakub Linuxi tuum nii tihedat ABI ühilduvust, et saate sama tuuma peal jäljendada erinevaid jaotusi. Nii saate CentOS-kahendfaile ja Ubuntu-rakendusi samal metallil käitada ainult erinevates konteinerites.
LXD inits
LX konteinerid on Linuxi-põhiste operatsioonisüsteemide jaoks hästi testitud ja vastupidav tehnoloogia. Sellel on kaks peamist komponenti, üks on LXC, mis haldab konteinerite konfiguratsioone, pildifaile jne.
See on vaikimisi installitud Ubuntu Server 16-le.04 LTS, kui kasutate töölaua levitamist, käivitage:
$ apt install lxd lxd-klient
Kui see on tehtud, peate lähtestama erinevad parameetrid. Järgmine käsk viib teid läbi:
$ lxd init
Siit saate valida vaikevalikud. Kõige rohkem oleks tegemist võrguliideste seadistamisega. Kui küsitakse LXD-võrgu seadistamist, valige vaikevalik jah.
1 Vastake võrgu seadistamise küsimisel uuesti jah
Järgmine aken küsib võrguliidese nime (nagu hostil näha), jättes selle vaikeväärtuseks lxdbr0.
IPv4 alamvõrgu seade saabub pärast seda. See võimaldaks erinevatel LX-i konteineritel omavahel rääkida nii, nagu oleksid need erinevad arvutid kohalikus võrgus. Valige selleks jah.
Järgmisena on neid mitu 10.202.X.X-aadressi kuvatakse selles alamvõrgus kumbki erineva rolliga. Võite vajutada sisestusklahvi, ilma et oleks vaja valikuid muuta. Kui küsitakse NAT-i konfiguratsiooni, valige jah.
See võimaldab teie konteineritel saada Interneti-ühenduse, kasutades hosti avalikku IP-d, samamoodi nagu teie sülearvuti ja muud seadmed koduruuteri kaudu (pordi edastamisega).
Viimane valik IPv6 alamvõrgu kohta on täiesti valikuline ja ma soovitaksin teil selle praegu välja jätta. Ütle ei, kui küsitakse IPv6-suvandeid.
Konteinerite ketramine
Näiteks Ubuntu 16 uue eksemplari käitamiseks.04, käivitage järgmine käsk:
$ lxc käivitab ubuntu: 16.04 teie_konteineri nimi
Kuna see on esimene kord, kui käitate Ubuntu serverit, võtab konteineripildi kaughoidlatest toomine aega. Kui see on tehtud, näete käivitatud konteineri üksikasju, käivitades käsu:
$ lxc loend
Selles näites on konteineri nimi jätkub1.
Kui soovite konteinerisse pääseda, käivitage käsk;
$ lxc exec name_of_your_container bash
See viib teid selle konteineri sees töötavasse bashi kesta. See lõhnaks ja tunduks nagu Ubuntu 16 värske install.04 ja saate selle sisse vabalt installida pakette ja teha erinevaid katseid, mis ei ohustaks teie peamist installimist.
Nüüd, kui pildifail on teie hostisüsteemi kohapeal salvestatud, saate Ubuntu konteinerid väga kiiresti üles keerata ja kasutada neid ühekordselt kasutatavate süsteemidena.
LX-i konteineri peatamiseks ja kustutamiseks käivitage;
$ lxc stop Container_name $ lxc kustuta container_name
Kasutage käsku lxc launch, nagu tegite esimest korda uute konteinerite kerimiseks.
Kust siit edasi minna
Nüüd, kui teate, milline on LXD arhitektuur, võiksite hakata uurima selliseid teemasid nagu võrkude loomine ja konteinerite salvestamine ning kuidas neid oma töökoormuse jaoks konfigureerida.
Samuti võiksite teada saada peamistest erinevustest Dockeri ja LXD vahel ning sellest, mis võiks teie vajadustele tegelikult paremini vastata. Kui soovite kasutada ZFS-i oma mälupildina (nagu peaksite!) võiksite vaadata seda ZFS-i põhitõdesid.