Programmering

Anmeldelse: De bedste Linux-distroer til Docker og containere

I løbet af de sidste seks måneder har jeg gennemgået fem minimale Linux-distributioner, der er optimeret til at køre containere: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host og VMware Photon OS. Generelt kendt som "containeroperativsystemer", disse afskårne, specialbyggede Linux-distributioner er ikke den eneste måde at køre containere i produktion på, men de giver en base, der ikke spilder ressourcer på noget udover containerunderstøttelse.

Industriens tilstand med containerinstallationssystemer ligner meget de første dage af Linux-distributioner. Du har et nøgleelement, i dette tilfælde Docker-containeren, der er omgivet af et antal konkurrerende økosystemkomponenter. Ligesom de traditionelle Linux-distroer indeholder forskellige pakkeadministratorer, desktop-miljøer, systemværktøjer, tjenester og apps, blandes de fleste containerdistributioner og matcher forskellige komponenter for at skabe det, de anser for en optimal løsning. Tag for eksempel distribueret konfiguration og serviceopdagelse. Der er flere løsninger til dette såsom Etcd, Consul og ZooKeeper.

Hver distribution tager en anden tilgang til, hvad de skal medtage i stakken. På den ene ekstremitet er der distributioner designet til kun at understøtte de højere niveauer i stakken, såsom CoreOS Container Linux og Red Hat Project Atomic. Så meget af funktionaliteten er blevet lagt i det proprietære styringslag, at der er lidt håb om at bruge operativsystemet til noget andet. Andre distroer, såsom RancherOS og VMware Photon OS, giver større fleksibilitet og understøtter flere økosystemkomponenter og orkestreringssystemer. Disse giver administratorer en god måde at eksperimentere på og potentielt undgå leverandørlås.

Alpine Linux

Alpine Linux, det underliggende operativsystem til mange officielle Docker-billeder, er et godt valg til opgaven. Alpine Linux er kun fem megabyte i størrelse og er i den modsatte ende af spektret fra de fede Linux-distributioner for et par år siden, som konkurrerede med Solaris og havde til hensigt at køre på massive hardwaresystemer. Denne nye race af Linux er designet til at køre på integreret hardware og forbruge minimale ressourcer, hvilket gør det til et perfekt valg til containere.

Alpine Linux's arv som et integreret system-OS var tydeligt under min gennemgang. Mange af konfigurationsindstillingerne er standardindbyggede systemer, og dokumentationen i mange områder var sparsom eller ikke-eksisterende. Klart et system designet til og primært brugt af hackere, Alpine Linux vil kræve, at virksomheder rydder et par forhindringer for at opbygge deres applikationer.

Produktionsinstallationer af Alpine Linux vil have flere fordele, herunder hurtig opstart, et minimalistisk fodaftryk og en sikker-som-standard-holdning, der ikke findes andetsteds. Alt fra systembinarier til C-bibliotekerne er designet til små, hurtige og sikre implementeringer. Der er ingen oppustethed her.

Administration af Alpine Linux er anderledes end traditionelle Linux-systemer, og det vil tage lidt tid at lære. Installation og pakkehåndtering er unik selv blandt containeroperativsystemerne, selvom de er gennemtænkte. Hvis din udviklingsbutik har udviklere, der er over gennemsnittet, og som er villige til at foretage investeringen, vil Alpine Linux give en solid, stabil og sikker base til applikationer i lang tid fremover.

CoreOS Container Linux

CoreOS-containerstakken trækker på Etcd til distribueret lagring og opdagelse af tjenester, Flannel til netværk og Kubernetes til containerorkestrering og understøtter sin egen smag af containerformat, rkt (Rocket), ud over Docker. Rocket var et forsøg på et konkurrerende containerformat for at afhjælpe mangler i Docker-formatet omkring 2015, men med disse mangler afhjulpet har Rocket ikke set meget optagelse.

Relateret video: Hvad er Kubernetes?

I denne 90-sekunders video lærer du om Kubernetes, open source-systemet til automatisering af containeriserede applikationer, fra en af ​​teknologiens opfindere, Joe Beda, grundlægger og CTO hos Heptio.

CoreOS er ligesom Project Atomic ikke bange for at afvige radikalt fra traditionel Linux. Ligesom Red Hats container-OS skaber CoreOS Container Linux et stort set uforanderligt filsystem, men gør det med et diskpartitioneringssystem inspireret af Googles Chromium OS. Hvad dette gør er at bevare det gamle filsystem på en partition, hvilket betyder, at tilbageførsler altid er sikre og hurtige.

Selvom dokumentationen er ret god og omfattende, fandt jeg installationen noget besværlig og involverede en totrinsproces for at udlede konfigurationsfilen. Når det først er installeret, tilbyder CoreOS kontinuerlige "ingen nedetid" -opgraderinger, en funktion muliggjort af dets unikke diskpartitionslayout. CoreOS har gjort et stort arbejde her, og virksomheden tilbyder forskellige vedligeholdelsesmuligheder, der passer til enhver organisation, inklusive muligheden for at fravælge.

CoreOS, ligesom Project Atomic, er en alt-eller-intet beslutning. At plukke stykkerne fra hinanden og bruge det underliggende operativsystem til at bygge din egen containerinfrastruktur er ikke rigtig en mulighed på grund af alle de arkitektoniske designbeslutninger, der er bagt ind på platformen. Hvis du er villig til at omfavne disse beslutninger og betale for CoreOS 'kommercielle Kubernetes-distribution, Tectonic, kan du uden tvivl udføre nogle alvorligt tunge løft.

Rancher Labs RancherOS

Rancher Labs 'RancherOS er et Linux-operativsystem, der udelukkende består af containere. Selv init-processen (PID 1) er en Docker-container. Dette betyder, at der ikke er behov for et pakkehåndteringssystem. OS-opgraderinger (og nedgraderinger) administreres med Docker, ligesom enhver anden container.

Selvom denne tilgang er lige så radikal som de arkitektoniske beslutninger, der er truffet i nogle af de andre distributioner, såsom Project Atomic og CoreOS, er resultatet en overraskende enkelhed. Selvom det at lære en helt ny systemadministration synes skræmmende i starten, skal du alligevel kende Docker til at administrere containere, så hvorfor ikke bruge det samme system til begge?

RancherOS ser ud til at modnes hurtigt. I min gennemgang fandt jeg dokumentationen lidt mangler, men enhver udvikler eller administrator, der kender Docker-containere, kender allerede det meste af systemet. RancherOS har et lille fodaftryk (20MB) og bruger effektiv ressourcer. Selvom linjerne mellem Rancher containerhåndteringssystemet og Rancher OS er noget slørede, er containerhåndteringssystemet gratis og open source, så der er ingen grund til at forsøge at rulle dit eget. Organisationer, der har brug for adgang til kildekode, skal ikke lede længere.

Rancher-platformen understøtter næsten hele økosystemet med værktøjer til containeradministration, herunder Docker Swarm, Kubernetes og Mesos, og det skrider frem hurtigt. Selvom RancherOS er radikalt anderledes end traditionel UNIX, synes RancherOS at have fulgt tættere på den grundlæggende UNIX-filosofi end de andre container-OS-distributioner: Enkle værktøjer, der fungerer sammen på en elegant måde.

Red Hat Project Atomic

Red Hats Project Atomic er fast i Kubernetes-lejren for servicearkestrering. Typisk er denne type implementering rettet mod store, meget tilgængelige scenarier. Ulempen er, at du i det væsentlige er nødt til at "gøre som du bliver bedt om" og arkitektere applikationen ved konvention.

I boksen finder du Flannel til netværk, Etcd til distribueret nøgleværdilagring og OSTree til værtsadministration. OSTree er en relativt ny måde at implementere et operativsystem i skala på en pålidelig og distribueret måde. Atomic kombinerer OSTree med en ny RPM-pakkehåndtering for at oprette RPM-OSTree, som leverer et stort set uforanderligt filsystem.

Jeg fandt Project Atomic som en udfordring. Det er meget ambitiøst og bevæger sig hurtigt med mange bevægelige dele. RHEL, CentOS, Fedora, SELinux, Systemd, et brugerdefineret "Docker" kommandosæt til at kontrollere den underliggende vært ... de er alle sammen, og dokumentationen er uorganiseret og forvirrende. Desuden var jeg i min lille klynge, der manglede Chef, Salt eller Puppet, nødt til manuelt at konfigurere hver node.

Pointen er, at Project Atomic stadig har brug for lidt tid til at bage. Hvis visionen realiseres, kan det blive fremtidens standard - dog ikke for datacentre med hundreder af noder, men tusinder eller titusinder. I denne henseende synes visionen tættere på Mesos end et typisk containerinstallationssystem. Hvis din virksomhed lever og ånder Red Hat-økosystemet og planlægger at blive der, er Project Atomic sandsynligvis værd at komme i gang med.

VMware Photon OS

VMwares Photon OS er en minimal Linux container vært designet til at have et lille fodaftryk og tunet til VMware hypervisors. Som sådan kører Photon OS kun i virtuelle miljøer; implementering på fysisk hardware er ikke mulig. Photon OS er tilpasset til at gøre containeradministration nemmere, men ikke så radikalt som Atomic eller CoreOS. Photon OS er mere et evolutionært trin.

Baseret på min test lever Photo OS sine løfter i det virtuelle VMware-miljø. (Photon OS kan også køre på andre hypervisorer såvel som Google- og Amazon-skyerne.) Fordi Photon OS kan antage antagelser om hardwaren (virtuel), ser økosystemet meget ud som standard Linux, hvilket gør læringskurven mindre stejl. Netværk og lagring er Systemd-kompatible, og der er en række muligheder dokumenteret til containernetværk. Dokumentationen til Photon OS er muligvis den bedste blandt de gennemgåede produkter.

VMware tager føringen inden for produktion af containere til traditionelle miljøer, og det giver mening, når du tænker over det. Hvor ofte er du blevet bedt om at beskrive forskellen mellem en container og en VM? Med Photon OS vil der snart ikke være nogen forskel: Containere vil bare være en let VM, implementeret og administreret med de samme værktøjer. Photon OS understøtter stort set alle større dele af containerøkosystemet: Docker- og Rocket-containere, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 og mere.

Af alle de distributioner, jeg har gennemgået, virker VMware Photon OS både det mest visionære og i øjeblikket det mest komplette og brugbare. Hvis du er en VMware-butik, der udforsker containerisering, ville jeg ikke tænke på at overveje noget andet. Hvis du ikke er en VMware-butik, er Photon OS stadig værd at se godt ud.

Sammenligning af containeroperativsystemer

Alpine Linux understøtter de fleste hvert Docker-billede derude. Perfekt til indlejrede applikationer, skal Alpine Linux ikke betragtes som en måde at køre containere på. I stedet for på en måde Alpine Linux er beholderen. Udviklere, der er fortrolige med at bygge applikationer på Alpine Linux, vil skrive bedre containerapplikationer.

CoreOS, et af de tidlige containeroperativsystemer, vedtager Googles teknologistak. Det tilbyder en pålidelig, men meningsfuld måde at styre containerinfrastruktur på. Mens CoreOS gør mange af komponenterne tilgængelige som open source, betyder kompleksiteten ved at lære sådan en stor stak effektivt, at brugerne bliver nødt til at købe det proprietære Techtonic orkestrationssystem til produktionsinstallationer. Hvis penge ikke er noget objekt, og du har brug for at implementere applikationer i størrelse i Google, er CoreOS et logisk valg.

RancherOS er rene beholdere. Hvis du vil rulle din egen containerinfrastruktur, eller hvis du vil have en minimal containeradministrationsstak, er RancherOS stedet at starte. Med open source orkestrering og planlægningsværktøjer som Docker Swarm, Kubernetes og Mesos, der alle er frit tilgængelige, vil Rancher-stakken appellere til open source-orienterede gør-det-selv virksomheder.

Red Hats Project Atomic er et paraplyprojekt, der omlægger den måde, hvorpå virksomheder implementerer infrastruktur. Dette ambitiøse projekt kunne ændre den måde, virksomhederne tænker på implementering af applikationer, men vejen er lang. Project Atomic er bedst egnet til early adopters med en stor eksisterende investering i Red Hat-teknologier.

VMwares Photon OS bringer sælgerens virtuelle maskinstyringsteknologi og erfaring til containere. Photon OS installeres som en virtuel maskine og styres med traditionelle VM-værktøjer. VMware, der måske ser skrifterne på væggen til traditionelle VM'er, har helhjertet taget containerteknologi til sig og udvikler hurtigt den nyeste teknologi. Hvis du er en VMware-butik nu, bliver du hårdt presset for at finde en bedre containerplatform end Photon OS.

Læs containeren Linux anmeldelser:

  • Anmeldelse: Alpine Linux er lavet til Docker
  • CoreOS anmeldelse: Linux til containere og Kubernetes
  • RancherOS: En enklere Linux til Docker-elskere
  • Anmeldelse: Red Hat gør Docker på den hårde måde
  • Gennemgang: VMwares Photon OS skinner til Docker-containere