LXD

Урок за LXD

Урок за LXD

Основи на LXD: Какво е това? И как да го използвам?

LXD контейнеризацията не е в центъра на вниманието на Docker, но всъщност е много по-близо до основната идея за виртуализация на операционната система. Но преди да стигнем там, нека поговорим за съвременната виртуализация на хардуерно ниво.

Виртуализация на хардуера

Традиционният начин, по който работят VMware, VirtualBox, KVM и подобни технологии, е следният - имате компютър със сървърна класа, да речем процесор от висок клас Xeon с 512 GB RAM, известен като голия метал. Инсталирате операционна система на това, която след това ще стартира VMware, Virtualbox или KVM.

Това са различни хипервизори, и операционната система, която ги изпълнява, е хост операционна система.

Сега това, което хипервизорът предлага, е следното - той емулира процесор, мрежови интерфейси, дискове за съхранение, памет, входно-изходни и други ресурси, така че върху този набор от може да бъде инсталирана нова операционна система виртуален хардуер. Тази нова операционна система е гост операционна система и работи на виртуален хардуер, както би било, ако беше инсталиран на физическа машина, но има уловка.

Ако мислите, „Но емулирането на различни хардуерни устройства, използвайки действителния хардуер, звучи неефективно и бавно.”Абсолютно си прав. Виртуализацията на хардуерно ниво е бавна и неефективна.

Нещо повече, самите операционни системи са изроди за контрол. Ако разпределите 1 гост оперативна памет и 2 ядра на процесора за гост, тя с радост ще отнеме всички ресурси, дори ако приложенията, работещи в нея, използват само част от нея. Тези ресурси няма да бъдат достъпни за хипервизора да се използва другаде.

Това силно ограничава броя на виртуалните машини, които могат да се изпълняват върху хипервизор. Ако сте доставчик на облачен хостинг, това означава, че вашият краен резултат ще бъде тежко засегнат.


Контейнерният начин за правене на нещата

Идеята за виртуализиран хардуер се изхвърля от прозореца, когато започнем да говорим за контейнери и по-специално LXD. Вместо да емулираме отделни хардуерни ресурси, това, което се опитваме да направим е да виртуализираме операционната система.

Когато LX контейнер е завъртян, ОС предлага себе си (т.е. ядрото, библиотеките всички налични ресурси) на приложенията, изпълняващи се в контейнера. Потребителите и приложенията в този контейнер няма да знаят за приложения и пакети, работещи извън него, и обратно.

Що се отнася до разпределението на ресурсите, можете просто да направите бележка, за да не позволите на определен контейнер да използва повече от, да речем, 2 GB RAM и 2 CPU. По този начин, когато приложенията, работещи в контейнер, не правят нищо интензивно, ресурсите могат да бъдат разпределени на друго място в хост средата.

Въпреки това, когато приложенията работят под голямо натоварване, те получават голи метални характеристики!

Очевидният недостатък на това е, че не можете да стартирате произволна операционна система като гост. Тъй като различните операционни системи имат различни архитектури като цяло. За щастие на потребителите на GNU / Linux, ядрото на Linux предлага толкова строга ABI съвместимост, че можете да емулирате различни дистрибуции върху едно и също ядро. Така че можете да стартирате двоични файлове на CentOS и приложения на Ubuntu на един и същи метал само в различни контейнери.


LXD инициал

LX контейнеризацията е добре тествана и стабилна технология за Linux-базирани операционни системи. Той има два основни компонента, единият е LXC, който управлява конфигурациите на контейнери, файлове с изображения и т.н., а след това има LXD, който е демонът, работещ на вашия хост, гарантиращ спазването на всички политики, зададени за контейнеризиране.

Той се инсталира по подразбиране на Ubuntu Server 16.04 LTS, ако използвате дистрибуция на работния плот, изпълнете:

$ apt инсталирайте lxd lxd-клиент

След като приключите, трябва да инициализирате различни параметри. Следващата команда ще ви преведе през тях:

$ lxd init

Можете да изберете опции по подразбиране от тук нататък.  Най-ангажираното нещо би било настройването на мрежови интерфейси. Когато бъдете помолени за настройка на LXD мрежа, изберете опцията по подразбиране да.

1 Отговорете да, отново, когато бъдете подканени за настройка на мрежата

Следващият прозорец ще поиска име на мрежов интерфейс (както се вижда на хоста), оставете го на стойността по подразбиране lxdbr0.

Настройката на подмрежата IPv4 ще дойде след това. Това би позволило на различни LX контейнери да говорят помежду си, сякаш са различни компютри в локална мрежа. Изберете да за това.

След това ще има няколко 10.202.х.X адреси, показани всеки с различна роля в тази подмрежа. Можете да натиснете Enter, без да е необходимо да променяте опциите. Когато бъдете помолени за NAT конфигурация, изберете да.

Това позволява на вашите контейнери да получат връзка с интернет, използвайки публичния IP на хоста, почти по същия начин, по който вашият лаптоп и други устройства правят през домашния рутер (с пренасочване на портове).

Последната опция за IPv6 подмрежата е напълно незадължителна и бих препоръчал да я пропуснете засега. Казвам не, когато бъдете подканени за опции IPv6.


Въртене на контейнерите

За да стартирате нов екземпляр, да речем, Ubuntu 16.04, изпълнете следната команда:

$ lxc стартира ubuntu: 16.04 name_of_your_container

Тъй като за първи път стартирате сървър на Ubuntu, ще отнеме време за извличане на изображението на контейнера от отдалечените хранилища. След като приключите, можете да видите подробностите за стартирания контейнер, като изпълните командата:

$ lxc списък

В този пример името на контейнера е продължение1.

Ако искате да влезете в контейнера, изпълнете командата;

$ lxc exec name_of_your_container bash

Това ще ви отведе в черупката на bash, работеща вътре в този контейнер. Миришеше и се чувстваше като нова инсталация на Ubuntu 16.04 и можете свободно да инсталирате пакети вътре в него и да правите различни експерименти, които не бихте рискували основната си инсталация.

Сега, след като файлът с изображения се съхранява локално във вашата хост система, можете много бързо да завъртите контейнери на Ubuntu и да ги използвате като системи за еднократна употреба.

За да спрете и изтриете контейнер LX, стартирайте;

$ lxc stop Container_name $ lxc изтриване на контейнер_име 

Използвайте командата за стартиране на lxc, както направихте първия път, за да завъртите нови контейнери.


Къде да отида от тук

След като вече знаете каква е архитектурата на LXD, може да искате да започнете да изследвате теми като работа в мрежа и съхранение за контейнери и как да ги конфигурирате така, че да отговарят на вашите натоварвания.

Може също да научите за основните разлики между Docker и LXD и какво всъщност може да отговаря на вашите нужди по-добре. Ако искате да използвате ZFS като своя бекенд за съхранение (както трябва!) може да искате да разгледате този урок за основите на ZFS.

Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...