Преглед: Най-добрите дистрибуции на Linux за Docker и контейнери

През последните шест месеца прегледах пет минимални дистрибуции на Linux, които са оптимизирани за работещи контейнери: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host и VMware Photon OS. Общо известни като „операционни системи за контейнери“, тези премахнати, специално изградени дистрибуции на Linux не са единственият начин за стартиране на контейнери в производството, но те осигуряват база, която не губи ресурси за нищо освен за поддръжка на контейнери.

Състоянието на индустрията със системи за разполагане на контейнери много прилича на ранните дни на дистрибуциите на Linux. Имате един ключов елемент, в този случай контейнера на Docker, който е заобиколен от редица конкуриращи се екосистемни компоненти. Точно както традиционните дистрибуции на Linux включват различни мениджъри на пакети, настолни среди, системни помощни програми, услуги и приложения, повечето дистрибуции на контейнери се смесват и съчетават различни компоненти, за да създадат това, което смятат за оптимално решение. Вземете за пример разпределена конфигурация и откриване на услуги. Има няколко решения за това като Etcd, Consul и ZooKeeper.

Всяко разпределение приема различен подход към това какво да включи в стека. В една крайност има дистрибуции, предназначени да поддържат само по-високите нива на стека, като CoreOS Container Linux и Red Hat Project Atomic. Толкова голяма част от функционалността е вложена в слоя за управление на собствеността, че има малка надежда да се използва операционната система за нещо друго. Други дистрибуции, като RancherOS и VMware Photon OS, осигуряват по-голяма гъвкавост, поддържайки множество екосистемни компоненти и системи за оркестрация. Те дават на администраторите добър начин да експериментират и потенциално да избегнат заключването на доставчика.

Alpine Linux

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

Наследството на Alpine Linux като вградена операционна система беше очевидно по време на моя преглед. Много от опциите за конфигуриране по подразбиране са вградени системи, а документацията в много области е оскъдна или не съществува. Ясно е, че системата, предназначена и използвана предимно от хакери, Alpine Linux ще изисква от компаниите да изчистят няколко препятствия при изграждането на своите приложения.

Производственото внедряване на Alpine Linux ще се радва на няколко предимства, включително бързо стартиране, минималистичен отпечатък и защитена по подразбиране позиция, която не се среща другаде. Всичко от системните двоични файлове до библиотеките C е проектирано за малки, бързи и сигурни внедрявания. Тук няма подуване.

Администрирането на Alpine Linux е различно от традиционните Linux системи и ще отнеме известно време, за да се научи. Инсталацията и управлението на пакети са уникални дори сред операционните системи на контейнери, макар и добре обмислени. Ако вашият магазин за разработки има над средните разработчици, които са готови да направят инвестицията, Alpine Linux ще осигури стабилна, стабилна и сигурна база за приложения за дълго време напред.

CoreOS Container Linux

Контейнерният стек CoreOS използва Etcd за разпределено съхранение и откриване на услуги, Flannel за работа в мрежа и Kubernetes за оркестрация на контейнери и поддържа свой собствен вкус на формат на контейнера, rkt (Rocket), в допълнение към Docker. Rocket беше опит за конкурентния формат на контейнера за отстраняване на недостатъци във формата на Docker около 2015 г., но с отстранените недостатъци Rocket не е забелязал голямо усвояване.

Свързано видео: Какво е Kubernetes?

В това 90-секундно видео научете за Kubernetes, системата с отворен код за автоматизиране на контейнерирани приложения, от един от изобретателите на технологията, Джо Беда, основател и технически директор в Heptio.

CoreOS, подобно на Project Atomic, не се страхува да се отклони радикално от традиционния Linux. Подобно на контейнерната операционна система на Red Hat, CoreOS Container Linux създава предимно неизменна файлова система, но го прави със система за разделяне на дискове, вдъхновена от Chromium OS на Google. Това прави запазването на старата файлова система на дял, което означава, че възстановяванията винаги са безопасни и бързи.

Въпреки че документацията е доста добра и изчерпателна, установих, че инсталацията е малко тромава, включваща процес от две стъпки за извличане на конфигурационния файл. Веднъж инсталиран обаче, CoreOS предлага непрекъснати надстройки „без престой“, функция, възможна от уникалното оформление на дисковия дял. CoreOS е свършил много работа тук и компанията предлага различни опции за поддръжка, които ще отговарят на повечето организации, включително възможността за отказ.

CoreOS, донякъде като Project Atomic, е решение „всичко или нищо“. Разделянето на парчетата и използването на основната операционна система за изграждане на собствена инфраструктура за контейнери всъщност не е опция поради всички решения за архитектурен дизайн, включени в платформата. Ако сте готови да приемете тези решения и да платите за търговската дистрибуция на Kubernetes на CoreOS, Tectonic, без съмнение бихте могли да извършите сериозно тежко повдигане.

Rancher Labs RancherOS

RancherOS на Rancher Labs е операционна система Linux, съставена изцяло от контейнери. Дори процесът на иницииране (PID 1) е контейнер на Docker. Това означава, че няма нужда от система за управление на пакети. Надстройките на ОС (и понижаванията) се управляват с Docker, както всеки друг контейнер.

Въпреки че този подход е също толкова радикален, колкото и архитектурните решения, взети в някои от другите дистрибуции, като Project Atomic и CoreOS, резултатът е изненадваща простота. Въпреки че изучаването на каквато и да е изцяло нова системна администрация в началото изглежда обезсърчително, трябва да знаете Docker за управление на контейнери така или иначе, така че защо да не използвате една и съща система и за двете?

RancherOS изглежда бързо узрява. В моя преглед открих, че документацията малко липсва, но всеки разработчик или администратор, запознат с контейнерите на Docker, вече ще познава по-голямата част от системата. RancherOS има малък отпечатък (20MB) и ефективно използва ресурсите. Въпреки че линиите между системата за управление на контейнери Rancher и операционната система Rancher донякъде са размити, системата за управление на контейнери е безплатна и с отворен код, така че няма причина да се опитвате да превъртите своя собствена. Организациите, които се нуждаят от достъп до изходния код, не трябва да търсят повече.

Платформата Rancher поддържа почти цялата екосистема от инструменти за управление на контейнери, включително Docker Swarm, Kubernetes и Mesos, и тя бързо напредва. Макар и коренно различен от традиционния UNIX, RancherOS изглежда се придържа по-тясно към основната UNIX философия, отколкото останалите дистрибуции на OS контейнери: прости инструменти, работещи заедно по елегантен начин.

Проектът Red Hat Atomic

Проектът на Red Hat Atomic е твърдо в лагера за оркестрация на услуги в Kubernetes. Обикновено този тип разполагане е насочено към широкомащабни, силно достъпни сценарии. Недостатъкът е, че по същество трябва да „правиш, както ти е казано“ и да създадеш приложението по конвенция.

В полето ще намерите Flannel за работа в мрежа, Etcd за разпределено съхранение на ключ-стойност и OSTree за управление на хоста. OSTree е сравнително нов начин за разгръщане на мащабна ОС по надежден и разпределен начин. Atomic комбинира OSTree с нов RPM мениджър на пакети, за да създаде RPM-OSTree, който предоставя предимно неизменна файлова система.

Открих, че Project Atomic е предизвикателство. Той е много амбициозен и се движи бързо, с много движещи се части. RHEL, CentOS, Fedora, SELinux, Systemd, персонализиран набор от команди “Docker” за управление на основния хост ... всички те са в микса, а документацията е дезорганизирана и объркваща. Освен това, в моя малък клъстер, без готвач, сол или кукла, трябваше да конфигурирам ръчно всеки възел.

Изводът е, че Project Atomic все още се нуждае от известно време, за да се изпече. Ако визията бъде реализирана, тогава тя може да се превърне в стандарт на бъдещето - макар и не за центрове за данни със стотици възли, а хиляди или десетки хиляди. В това отношение визията изглежда по-близка до тази на Mesos, отколкото типична система за разполагане на контейнери. Ако вашата компания живее и диша екосистемата на Red Hat и планира да остане там, тогава Project Atomic вероятно си струва да започнете.

VMware Photon OS

Photon OS на VMware е минимален хост на контейнер за Linux, проектиран да има малък отпечатък и настроен за хипервизори на VMware. Като такава, Photon OS работи само във виртуална среда; разполагането на физически хардуер не е възможно. Photon OS е персонализирана, за да улесни управлението на контейнери, но не толкова радикално, колкото Atomic или CoreOS. Photon OS е по-скоро еволюционна стъпка.

Въз основа на моето тестване, Photo OS изпълнява обещанията си във виртуалната среда на VMware. (Photon OS може да работи и на други хипервизори, както и на облаците Google и Amazon.) Тъй като Photon OS може да прави предположения относно хардуера (виртуален), екосистемата прилича много на стандартния Linux, правейки кривата на обучение по-малко стръмна. Мрежата и съхранението са съвместими с Systemd и има набор от опции, документирани за мрежови контейнери. Документацията за Photon OS може да е най-добрата сред разгледаните продукти.

VMware поема водещата роля в производството на контейнери за традиционни среди и това има смисъл, когато се замислите. Колко често сте били помолени да опишете разликата между контейнер и виртуална машина? С Photon OS скоро няма да има разлика: Контейнерите ще бъдат само лека VM, внедрена и управлявана със същите инструменти. Photon OS поддържа практически всяка основна част от екосистемата на контейнерите: Docker и Rocket контейнери, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 и др.

От всички дистрибуции, които прегледах, VMware Photon OS изглежда едновременно най-визионерската и в момента най-пълната и използваема. Ако сте магазин на VMware, който изследва контейнеризирането, не бих се сетил да обмислям нещо друго. Ако не сте VMware магазин, Photon OS все пак си заслужава да се разгледа добре.

Сравняване на операционни системи за контейнери

Alpine Linux е в основата на повечето изображения на Docker там. Перфектен за вградени приложения, Alpine Linux не трябва да се разглежда като начин за стартиране на контейнери. Вместо това по някакъв начин Alpine Linux е контейнерът. Разработчиците, запознати със създаването на приложения на Alpine Linux, ще напишат по-добри приложения за контейнери.

CoreOS, една от ранните операционни системи за контейнери, приема стека от технологии на Google. Той предлага надежден, макар и самоуверен начин за управление на контейнерната инфраструктура. Докато CoreOS предлага много от компонентите на разположение като отворен код, сложността на обучението на такъв голям стек ефективно означава, че потребителите ще трябва да закупят патентованата Techtonic система за оркестрация за производствени внедрения. Ако парите не са обект и трябва да внедрите приложения с размер на Google, CoreOS е логичен избор.

RancherOS е чист контейнер. Ако ще създадете своя собствена инфраструктура за контейнери или искате минимален стек за управление на контейнери, RancherOS е мястото, от което да започнете. С инструментите за оркестрация и планиране с отворен код като Docker Swarm, Kubernetes и Mesos, всички безплатно достъпни, стекът Rancher ще се хареса на компании, ориентирани към отворен код, направи си сам.

Project Atomic на Red Hat е общ проект, който преструктурира начина, по който компаниите разгръщат инфраструктурата. Този амбициозен проект може да промени начина, по който компаниите мислят за внедряване на приложения, но пътят е дълъг. Project Atomic е най-подходящ за начинаещи с голяма съществуваща инвестиция в технологиите Red Hat.

Photon OS на VMware носи технологията за управление на виртуални машини и опит на този доставчик в контейнери. Photon OS е внедрена като виртуална машина и се управлява с традиционни VM инструменти. VMware, може би виждайки изписването на стената за традиционните виртуални машини, е прегърнал с цялото си сърце контейнерната технология и бързо напредва в съвременното състояние. Ако сега сте магазин на VMware, ще бъдете трудно да намерите по-добра платформа за контейнери от Photon OS.

Прочетете отзивите на контейнера за Linux: 

  • Преглед: Alpine Linux е създаден за Docker
  • Преглед на CoreOS: Linux за контейнери и Kubernetes
  • RancherOS: По-опростен Linux за любителите на Docker
  • Ревю: Red Hat прави Docker по трудния начин
  • Преглед: Photon OS на VMware блести за Docker контейнери