Container Linux - Container Linux
| Udvikler | CoreOS -team, Red Hat |
|---|---|
| OS familie | Linux (baseret på Gentoo Linux ) |
| Arbejdstilstand | Udgået |
| Kildemodel | Åben kilde |
| Første udgivelse | 3. oktober 2013 |
| Seneste udgivelse | 2512.3.0 / 22. maj 2020 |
| Seneste preview | 2513.2.0 (Beta) / 22. maj 2020 2514.1.0 (Alpha) / 22. maj 2020 |
| Marketing mål | Servere og klynger |
| Platforme | x86-64 |
| Kernel type | Monolitisk ( Linux -kerne ) |
| Licens | Apache -licens 2.0 |
| Efterfulgt af | Fedora CoreOS RHEL CoreOS |
| Officiel hjemmeside | coreos |
Container Linux (tidligere CoreOS Linux ) er et afviklet letvægts- operativsystem med åben kildekode, der er baseret på Linux-kernen og designet til at levere infrastruktur til grupperede implementeringer, samtidig med at der fokuseres på automatisering, enkel applikationsudrulning, sikkerhed, pålidelighed og skalerbarhed . Som et operativsystem leverede Container Linux kun den minimale funktionalitet, der kræves til implementering af applikationer inde i softwarecontainere , sammen med indbyggede mekanismer til serviceopdagelse og konfigurationsdeling.
Container Linux deler fundamenter med Gentoo Linux , Chrome OS og Chromium OS gennem et fælles softwareudviklingssæt (SDK). Container Linux tilføjer ny funktionalitet og tilpasning til dette delte fundament for at understøtte serverhardware og use cases. CoreOS blev primært udviklet af Alex Polvi, Brandon Philips og Michael Marineau, med dets hovedfunktioner tilgængelige som en stabil udgivelse .
CoreOS-teamet annoncerede ophør af Container Linux den 26. maj 2020 og tilbyder Fedora CoreOS og RHEL CoreOS som erstatning, begge baseret på Red Hat .
Oversigt
Container Linux giver ingen pakkehåndtering som en måde til distribution af nyttelastapplikationer, hvilket i stedet kræver, at alle applikationer kører inde i deres containere. En Container Linux-instans fungerer som en enkelt kontrolvært og bruger de underliggende virtualiseringsfunktioner på Linux-kernen på operativsystemniveau til at oprette og konfigurere flere containere, der fungerer som isolerede Linux- systemer. På den måde udføres ressourceopdeling mellem containere gennem flere isolerede userpace- forekomster, i stedet for at bruge en hypervisor og levere fuldgyldige virtuelle maskiner . Denne tilgang er baseret på Linux-kernen er cgroups og navnerum funktionaliteter, der tilsammen giver evner til grænsen, konto og isolat ressourceforbrug ( CPU , hukommelse, disk I / O , etc.) til samlinger af userspace processer .
Oprindeligt brugte Container Linux udelukkende Docker som en komponent, der giver et ekstra lag af abstraktion og grænseflade til Linux-kernens virtualiseringsfunktioner på operativsystemniveau, samt at levere et standardiseret format til containere, der tillader applikationer at køre i forskellige miljøer. I december 2014 udgav CoreOS og begyndte at understøtte rkt (oprindeligt udgivet som Rocket ) som et alternativ til Docker, hvilket gav et andet standardiseret format af applikationscontainerbillederne, den tilhørende definition af container- runtime-miljøet og en protokol til opdagelse og hentning af containerbilleder. CoreOS leverer rkt som en implementering af den såkaldte app container (appc) specifikation, der beskriver nødvendige egenskaber for applikations container image (ACI); CoreOS startede appc og ACI som et uafhængigt udvalgsstyret sæt specifikationer med det formål at få dem til at blive en del af leverandør- og operativsystemuafhængige Open Container Initiative (OCI; oprindeligt kaldet Open Container Project eller OCP) containeriseringsstandarden, som blev annonceret i juni 2015.
Container Linux bruger ebuild -scripts fra Gentoo Linux til automatiseret kompilering af dets systemkomponenter og bruger systemd som sit primære init -system med tæt integration mellem systemd og forskellige Container Linux's interne mekanismer.
Opdaterer distribution
Container Linux opnår ekstra sikkerhed og pålidelighed af sit styresystem opdateringer ved at ansætte FastPatch som en dual-partition ordning for read-only del af sin installation, hvilket betyder, at opdateringerne er udført som en helhed og installeret på en passiv sekundær boot -partition , der bliver aktiv ved en genstart eller kexec . Denne fremgangsmåde undgår mulige problemer, der opstår ved opdatering af kun visse dele af operativsystemet, sikrer nem tilbageførsel til en kendt-til-at-være-stabil version af operativsystemet og tillader, at hver bootpartition underskrives for yderligere sikkerhed. Rodpartitionen og dens rodfilsystem ændres automatisk til at fylde al tilgængelig diskplads ved genstart; mens rodpartitionen giver skrive-og lagerplads, er selve operativsystemet monteret skrivebeskyttet under /usr .
For at sikre, at kun en bestemt del af klyngen genstarter på én gang, når operativsystemopdateringer anvendes, og på den måde bevarer de ressourcer, der kræves til at køre implementerede applikationer, leverer CoreOS låsesmed som en genstart manager til Container Linux. Ved hjælp af låsesmed kan man vælge mellem forskellige opdateringsstrategier, der bestemmes af, hvordan genstartene udføres som det sidste trin i anvendelsen af opdateringer; for eksempel kan man konfigurere, hvor mange klyngemedlemmer der må genstarte samtidigt. Internt låsesmed fungerer som locksmithd dæmonen , der kører på klynge medlemmer, mens locksmithctl kommandolinjen nytte administrerer konfigurationsparametre. Låsesmed er skrevet på Go -sproget og distribueret under vilkårene i Apache License 2.0 .
Opdateringsdistributionssystemet, der bruges af Container Linux, er baseret på Googles Omaha- projekt med open source , som giver en mekanisme til udrulning af opdateringer og den underliggende anmodning-svar- protokol baseret på XML . Derudover tilbyder CoreOS CoreUpdate som et webbaseret dashboard til administration af klynge-dækkende opdateringer. Operationer, der er tilgængelige via CoreUpdate, omfatter tildeling af klyngemedlemmer til forskellige grupper, der deler tilpassede opdateringspolitikker, gennemgang af klyngedækkende sammenbrud af Container Linux-versioner, stop og genstart af opdateringer og gennemgang af registrerede opdateringslogfiler. CoreUpdate giver også en HTTP -baseret API, der gør det muligt at integrere den i tredjepartsværktøjer eller implementeringssystemer .
Klyngeinfrastruktur
Container Linux leverer etcd, en dæmon, der kører på tværs af alle computere i en klynge og giver et dynamisk konfigurationsregister, så forskellige konfigurationsdata let og pålideligt kan deles mellem klyngemedlemmerne. Da nøgleværdien data lagret i etcd automatisk fordeles og replikeres med automatiseret masterudvælgelsesprocessen og konsensus etablering hjælp af Raft algoritmen, er alle ændringer i lagrede data afspejlet i hele klyngen, medens de opnåede redundans forebygger svigt af enkelte klyngemedlemmer i at forårsage datatab. Udover konfigurationsstyringen giver etcd også serviceopdagelse ved at tillade implementerede applikationer at annoncere sig selv og de tjenester, de tilbyder. Kommunikation med etcd udføres via en udsat REST -baseret API, som internt bruger JSON oven på HTTP; API'et kan bruges direkte (f.eks. via curl eller wget ) eller indirekte via etcdctl , som er et specialiseret kommandolinjeværktøj, der også leveres af CoreOS. Etcd bruges også i Kubernetes -software.
Container Linux giver også fleet cluster manager, der styrer Container Linux's separate systemd forekomster på klyngeniveau. Fra 2017 er "flåde" ikke længere aktivt udviklet og afskrives til fordel for Kubernetes . Ved at bruge fleetd opretter Container Linux et distribueret init-system, der binder sammen separate systemd-forekomster og en klynge-omfattende etcd- implementering; internt kommunikerer fleetd- dæmon med lokale systemforekomster over D-Bus og med etcd- implementeringen via dens udsatte API. Brug af fleetd tillader implementering af enkelt- eller flere containere i hele klyngen, med mere avancerede muligheder, herunder redundans , failover , distribution til bestemte klyngemedlemmer, afhængigheder mellem containere og grupperet distribution af containere. Et kommandolinjeværktøj kaldet fleetctl bruges til at konfigurere og overvåge dette distribuerede init-system; internt kommunikerer det med fleetd- dæmonen ved hjælp af en JSON-baseret API oven på HTTP, som også kan bruges direkte. Når den bruges lokalt på et klyngemedlem, kommunikerer fleetctl med den lokale fleetd -instans over et Unix -domæne -stik ; når den bruges fra en ekstern vært, bruges SSH -tunneling med godkendelse leveret via offentlige SSH -nøgler .
Alle de ovennævnte dæmoner og kommandolinjeværktøjer ( etcd , etcdctl , fleetd og fleetctl ) er skrevet på Go-sproget og distribueret under vilkårene i Apache License 2.0.
Implementering
Når den kører på dedikeret hardware, kan Container Linux enten installeres permanent på lokalt lager, f.eks. En harddisk (HDD) eller solid-state-drev (SSD), eller startes eksternt via et netværk ved hjælp af Preboot Execution Environment (PXE) generelt , eller iPXE som en af dens implementeringer. CoreOS understøtter også implementeringer på forskellige hardwarevirtualiseringsplatforme , herunder Amazon EC2 , DigitalOcean , Google Compute Engine , Microsoft Azure , OpenStack , QEMU / KVM , Vagrant og VMware . Container Linux kan også installeres på Citrix XenServer, idet det bemærkes, at der findes en "skabelon" til CoreOS.
Container Linux kan også implementeres gennem sin kommercielle distribution kaldet Tectonic , som desuden integrerer Googles Kubernetes som et klyngehåndteringsværktøj . Fra april 2015 er Tectonic planlagt at blive tilbudt som beta -software til udvalgte kunder. Desuden leverer CoreOS Flannel som en komponent, der implementerer et overlay -netværk , der primært kræves til integration med Kubernetes.
Fra februar 2015 understøtter Container Linux kun x86-64- arkitekturen.
Derivater
Efter opkøbet af CoreOS, Inc. i januar 2018 annoncerede Red Hat, at det ville fusionere CoreOS Container Linux med Red Hats Project Atomic for at oprette et nyt operativsystem, Red Hat CoreOS, samtidig med at upstream Fedora Project -open source -fællesskabet blev tilpasset omkring Fedora CoreOS, der kombinerer teknologier fra begge forgængere.
Den 6. marts 2018 annoncerede Kinvolk GmbH Flatcar Container Linux , et derivat af CoreOS Container Linux. Dette sporer opstrøms CoreOS alfa/beta/stabile kanaludgivelser, med en eksperimentel Edge -udgivelseskanal tilføjet i maj 2019.
Reception
LWN.net gennemgik CoreOS i 2014:
For dem, der sammensætter store, distribuerede systemer - webapplikationer er et godt eksempel - CoreOS ser ud til at have en masse interessant funktionalitet. Det bør give applikationer af denne type mulighed for at vokse og krympe efter behov med efterspørgslen samt give en stabil platform, hvor opgraderinger ikke er en konstant hovedpine. For "massive serverimplementeringer" ligner CoreOS eller noget med mange af de samme egenskaber fremtiden.
Se også
- Applikationsvirtualisering - softwareteknologi, der indkapsler applikationssoftware fra det operativsystem, som det udføres på
- Sammenligning af applikationsvirtualiseringssoftware - forskellige bærbare og scriptsprog virtuelle maskiner
- Sammenligning af platformvirtualiseringssoftware - forskellige emulatorer og hypervisorer, der efterligner hele de fysiske computere
- LXC (Linux Containers) - et miljø til at køre flere isolerede Linux -systemer (containere) på en enkelt Linux -kontrolvært
- Virtualiseringsimplementeringer på operativsystemniveau-baseret på operativsystemkernens understøttelse af flere isolerede userpace-forekomster
- Software as a service (SaaS) - en softwarelicens- og leveringsmodel, der hoster softwaren centralt og licenserer det på abonnementsbasis
- Virtualisering - et generelt begreb om at levere virtuelle versioner af computerhardware -platforme, operativsystemer, lagerenheder osv.
Referencer
eksterne links
- Officielle CoreOS- og GitHub- kildekodelagre: CoreOS , etcd , fleet , rkt og CoreOS-overlay
- CoreOS hos DistroWatch
- Første glimt på CoreOS , 3. september 2013, af Sébastien Han
- CoreOS: Linux til skyen og datacenteret , ZDNet , 2. juli 2014, af Steven J. Vaughan-Nichols
- Hvad er CoreOS? En eksistentiel trussel mod Linux -leverandører , InfoWorld , 9. oktober 2014, af Matt Asay
- Forståelse af CoreOS distribueret arkitektur , 4. marts 2015, en snak med Alex Polvi af Aaron Delp og Brian Gracely
- CoreOS flådearkitektur , 26. august 2014, af Brian Waldon et al.
- Kører CoreOS på Google Compute Engine , 23. maj 2014
- CoreOS flytter fra Btrfs til EXT 4 + OverlayFS , Phoronix 18. januar 2015 af Michael Larabel
- Beholdere og vedvarende data , LWN.net , 28. maj 2015, af Josh Berkus