Programmering

Gjennomgang: De beste Linux-distribusjonene for Docker og containere

I løpet av de siste seks månedene har jeg gjennomgått fem minimale Linux-distribusjoner som er optimalisert for å kjøre containere: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host og VMware Photon OS. Generelt kjent som "containeroperativsystemer", disse nedlagte, spesialbygde Linux-distribusjonene er ikke den eneste måten å kjøre containere i produksjon, men de gir en base som ikke kaster bort ressurser på noe annet enn containerstøtte.

Tilstanden i bransjen med containerdistribusjonssystemer ligner veldig på de første dagene av Linux-distribusjoner. Du har ett nøkkelelement, i dette tilfellet Docker-containeren, som er omgitt av en rekke konkurrerende økosystemkomponenter. Akkurat som de tradisjonelle Linux-distribusjonene pakker forskjellige pakkeforvaltere, skrivebordsmiljøer, systemverktøy, tjenester og apper, blandes de fleste containerdistribusjoner og matcher forskjellige komponenter for å skape det de anser som en optimal løsning. Ta for eksempel distribuert konfigurasjon og tjenesteoppdagelse. Det er flere løsninger for dette som Etcd, Consul og ZooKeeper.

Hver distribusjon tar en annen tilnærming til hva de skal inkludere i bunken. På den ene ekstremen er det distribusjoner som er designet for å støtte bare de høyere nivåene i stakken, for eksempel CoreOS Container Linux og Red Hat Project Atomic. Så mye av funksjonaliteten er lagt inn i det proprietære administrasjonslaget at det er lite håp om å bruke operativsystemet til noe annet. Andre distroer, som RancherOS og VMware Photon OS, gir større fleksibilitet, og støtter flere økosystemkomponenter og orkestrasjonssystemer. Disse gir administratorer en god måte å eksperimentere og potensielt unngå leverandørinnlåsing.

Alpint Linux

Alpine Linux, det underliggende operativsystemet for mange offisielle Docker-bilder, er et godt valg for oppgaven. Bare fem megabyte i størrelse, Alpine Linux er i motsatt ende av spekteret fra de fete Linux-distribusjonene for noen år siden, som konkurrerte med Solaris og ment å kjøre på massive maskinvaresystemer. Denne nye rasen av Linux er designet for å kjøre på innebygd maskinvare, og forbruke minimale ressurser, noe som gjør det til et perfekt valg for containere.

Alpine Linuxs arv som innebygd operativsystem var tydelig under min gjennomgang. Mange av konfigurasjonsalternativene er standard for innebygde systemer, og dokumentasjonen i mange områder var sparsom eller ikke-eksisterende. Klart et system designet for og primært brukt av hackere, vil Alpine Linux kreve at selskaper må fjerne noen hindringer for å bygge applikasjonene sine.

Produksjonsdistribusjoner av Alpine Linux vil ha flere fordeler, inkludert rask oppstart, et minimalistisk fotavtrykk og en sikker standardstandard som ikke finnes andre steder. Alt fra systembinarier til C-bibliotekene er designet for små, raske og sikre distribusjoner. Det er ingen oppblåsthet her.

Administrasjon av Alpine Linux er annerledes enn tradisjonelle Linux-systemer, og det vil ta litt tid å lære. Installasjon og pakkehåndtering er unik selv blant containeroperativsystemene, men godt gjennomtenkt. Hvis utviklingsbutikken din har utviklere som er over gjennomsnittet som er villige til å investere, vil Alpine Linux gi en solid, stabil og sikker base for applikasjoner i lang tid framover.

CoreOS Container Linux

CoreOS-containerbunken trekker på Etcd for distribuert lagring og serviceoppdagelse, Flannel for nettverk og Kubernetes for containerorkestrering, og støtter sin egen smak av containerformat, rkt (Rocket), i tillegg til Docker. Rocket var et forsøk på et konkurrerende containerformat for å løse mangler i Docker-formatet rundt 2015, men med de manglene som ble løst, har ikke Rocket sett mye opptak.

Relatert video: Hva er Kubernetes?

I denne 90 sekunders videoen kan du lære om Kubernetes, open source-systemet for automatisering av containeriserte applikasjoner, fra en av teknologiens oppfinnere, Joe Beda, grunnlegger og CTO i Heptio.

CoreOS, som Project Atomic, er ikke redd for å avvike radikalt fra tradisjonell Linux. I likhet med Red Hats container OS oppretter CoreOS Container Linux et stort sett uforanderlig filsystem, men gjør det med et diskpartisjoneringssystem inspirert av Googles Chromium OS. Hva dette gjør er å bevare det gamle filsystemet på en partisjon, noe som betyr at tilbakestillinger alltid er trygge og raske.

Selv om dokumentasjonen er ganske god og omfattende, fant jeg installasjonen noe tungvint, og involverte en totrinnsprosess for å utlede konfigurasjonsfilen. Etter at CoreOS er installert, tilbyr den kontinuerlige, "ingen nedetid" -oppgraderinger, en funksjon som er mulig med sitt unike diskpartisjonsoppsett. CoreOS har gjort mye arbeid her, og selskapet tilbyr forskjellige vedlikeholdsmuligheter som passer de fleste organisasjoner, inkludert muligheten til å velge bort.

CoreOS, som Project Atomic, er en alt-eller-ingenting-beslutning. Å plukke fra hverandre bitene og bruke det underliggende operativsystemet til å bygge din egen containerinfrastruktur er egentlig ikke et alternativ på grunn av alle de arkitektoniske designbeslutningene som er bakt inn i plattformen. Hvis du er villig til å ta imot disse beslutningene og betale for CoreOS kommersielle Kubernetes-distribusjon, Tectonic, kan du uten tvil utføre noen alvorlig tunge løft.

Rancher Labs RancherOS

Rancher Labs ’RancherOS er et Linux-operativsystem som utelukkende består av containere. Selv init-prosessen (PID 1) er en Docker-container. Dette betyr at det ikke er behov for et pakkehåndteringssystem. OS-oppgraderinger (og nedgraderinger) administreres med Docker, akkurat som alle andre containere.

Selv om denne tilnærmingen er like radikal som de arkitektoniske beslutningene som er gjort i noen av de andre distribusjonene, for eksempel Project Atomic og CoreOS, er resultatet en overraskende enkelhet. Selv om det å lære noen helt ny systemadministrasjon virker skremmende i starten, må du kjenne Docker for å administrere containere uansett, så hvorfor ikke bruke det samme systemet for begge?

RancherOS ser ut til å modnes raskt. I min anmeldelse fant jeg dokumentasjonen mangler, men enhver utvikler eller administrator som er kjent med Docker-containere, vil allerede kjenne det meste av systemet. RancherOS har et lite fotavtrykk (20 MB) og utnytter ressurser effektivt. Selv om linjene mellom Rancher containerhåndteringssystemet og Rancher OS er noe uskarpe, er containerhåndteringssystemet gratis og åpen kildekode, så det er ingen grunn til å prøve å rulle din egen. Organisasjoner som trenger tilgang til kildekoden, bør ikke lete lenger.

Rancher-plattformen støtter nesten hele økosystemet med verktøy for containeradministrasjon, inkludert Docker Swarm, Kubernetes og Mesos, og den går raskt. Selv om RancherOS er radikalt annerledes enn tradisjonell UNIX, ser det ut til at RancherOS har fulgt nærmere den grunnleggende UNIX-filosofien enn de andre container OS-distribusjonene: Enkle verktøy som fungerer sammen på en elegant måte.

Red Hat Project Atomic

Red Hat’s Project Atomic befinner seg i Kubernetes-leiren for serviceorkestrering. Vanligvis er denne typen distribusjon rettet mot store, svært tilgjengelige scenarier. Ulempen er at du i hovedsak må "gjøre som du blir bedt om" og arkitektere søknaden etter konvensjon.

I boksen finner du Flannel for nettverk, Etcd for distribuert nøkkelverdilagring og OSTree for vertsadministrasjon. OSTree er en relativt ny måte å distribuere et operativsystem i skala på en pålitelig og distribuert måte. Atomic kombinerer OSTree med en ny RPM-pakkebehandling for å lage RPM-OSTree, som leverer et stort sett uforanderlig filsystem.

Jeg syntes Project Atomic var en utfordring. Det er veldig ambisiøst og beveger seg raskt, med mange bevegelige deler. RHEL, CentOS, Fedora, SELinux, Systemd, et tilpasset “Docker” -kommandosett for å kontrollere den underliggende verten ... de er alle sammen, og dokumentasjonen er uorganisert og forvirrende. Videre, i den lille klyngen min, uten Chef, Salt eller Puppet, måtte jeg konfigurere hver node manuelt.

Poenget er at Project Atomic fortsatt trenger litt tid til å bake. Hvis visjonen blir realisert, kan den bli fremtidens standard - men ikke for datasentre med hundrevis av noder, men tusenvis eller titusenvis. I denne forbindelse virker visjonen nærmere Mesos enn et typisk containerutplasseringssystem. Hvis selskapet ditt lever og puster Red Hat-økosystemet og planlegger å bli der, er Project Atomic sannsynligvis verdt å komme i gang med.

VMware Photon OS

VMware's Photon OS er en minimal Linux-containervert designet for å ha et lite fotavtrykk og innstilt for VMware-hypervisorer. Som sådan kjører Photon OS bare i virtuelle miljøer; distribusjon på fysisk maskinvare er ikke mulig. Photon OS er tilpasset for å gjøre containeradministrasjon enklere, men ikke så radikalt som Atomic eller CoreOS. Photon OS er mer et evolusjonært trinn.

Basert på testingen min, lever Photo OS opp til sine løfter i det virtuelle VMware-miljøet. (Photon OS kan også kjøres på andre hypervisorer så vel som Google- og Amazon-skyene.) Fordi Photon OS kan gjøre antakelser om maskinvaren (virtuell), ser økosystemet veldig ut som standard Linux, noe som gjør læringskurven mindre bratt. Nettverk og lagring er Systemd-kompatible, og det er en rekke alternativer dokumentert for containernettverk. Dokumentasjonen for Photon OS kan være den beste blant produktene som er gjennomgått.

VMware tar ledelsen innen produksjon av containere for tradisjonelle miljøer, og dette er fornuftig når du tenker på det. Hvor ofte har du blitt bedt om å beskrive forskjellen mellom en container og en VM? Med Photon OS vil det snart ikke være noen forskjell: Containere vil bare være en lett VM, distribuert og administrert med de samme verktøyene. Photon OS støtter nesten alle hoveddeler av containerøkosystemet: Docker og Rocket containere, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 og mer.

Av alle distribusjonene jeg gjennomgikk, virker VMware Photon OS både som den mest visjonære og for tiden den mest komplette og brukbare. Hvis du er en VMware-butikk som utforsker containerisering, vil jeg ikke tenke på å vurdere noe annet. Hvis du ikke er en VMware-butikk, er Photon OS fortsatt verdt en god titt.

Sammenligning av containeroperativsystemer

Alpine Linux underbygger de fleste hvert Docker-bilder der ute. Perfekt for innebygde applikasjoner, og Alpine Linux bør ikke betraktes som en måte å kjøre containere på. I stedet for på en måte Alpine Linux er beholderen. Utviklere som er kjent med å bygge applikasjoner på Alpine Linux, vil skrive bedre containerapplikasjoner.

CoreOS, et av de første containeroperativsystemene, vedtar Google-teknologibakken. Det gir en pålitelig, men meningsfull måte å administrere containerinfrastruktur på. Mens CoreOS gjør mange av komponentene tilgjengelige som åpen kildekode, betyr kompleksiteten ved å lære en så stor stab effektivt at brukerne må kjøpe det proprietære Techtonic orkestrasjonssystemet for produksjonsutrulling. Hvis penger ikke er noe objekt, og du trenger å distribuere applikasjoner i størrelse i Google, er CoreOS et logisk valg.

RancherOS er rene beholdere. Hvis du skal rulle din egen containerinfrastruktur, eller hvis du vil ha en minimal containerhåndteringsstabel, er RancherOS stedet å starte. Med open source orkestrering og planleggingsverktøy som Docker Swarm, Kubernetes og Mesos, alle tilgjengelige, vil Rancher-stakken appellere til åpen kildekode-orienterte, gjør-det-selv selskaper.

Red Hat’s Project Atomic er et paraplyprosjekt som omorganiserer måten selskaper distribuerer infrastruktur på. Dette ambisiøse prosjektet kan endre måten selskaper tenker på distribusjon av applikasjoner, men veien er lang. Project Atomic er best egnet for tidlig adoptere med en stor eksisterende investering i Red Hat-teknologier.

VMware's Photon OS bringer den leverandørens teknologi og erfaring for virtuell maskinadministrasjon til containere. Photon OS distribueres som en virtuell maskin og administreres med tradisjonelle VM-verktøy. VMware, som kanskje ser skriften på veggen for tradisjonelle virtuelle maskiner, har helhjertet tatt imot containerteknologi og fremmer raskt den nyeste teknologien. Hvis du er en VMware-butikk nå, vil du bli hardt presset for å finne en bedre containerplattform enn Photon OS.

Les Container Linux-omtaler:

  • Gjennomgang: Alpine Linux er laget for Docker
  • CoreOS anmeldelse: Linux for containere og Kubernetes
  • RancherOS: En enklere Linux for Docker-elskere
  • Gjennomgang: Red Hat gjør Docker på den harde måten
  • Gjennomgang: VMwares Photon OS skinner for Docker-containere
$config[zx-auto] not found$config[zx-overlay] not found