CoreOS | |
Prosjekt status | Under utvikling |
---|---|
Plattformer | x86-64 |
Bedrift / Utvikler |
Rød hatt |
Tillatelse | Apache License 2.0 |
Nettsted | https://coreos.com/os/docs/latest/ |
Container Linux (tidligere CoreOS Linux ) er et lett kildekode operativsystem basert på Linux-kjernen og designet for å gi infrastruktur for klyngedistribusjoner , mens du fokuserer på automatisering, enkel applikasjonsutplassering, sikkerhet, pålitelighet og skalerbarhet . Som et operativsystem gir Container Linux bare den minste funksjonaliteten som kreves for å distribuere applikasjoner i programvarebeholdere, samt innebygde mekanismer for tjenesteoppdagelse og konfigurasjonsdeling.
Container Linux deler stiftelser med Gentoo Linux , Chrome OS og Chromium OS gjennom et felles programvareutviklingssett (SDK). Container Linux legger til nye funksjoner og tilpasninger til dette delte fundamentet for å støtte ekstra maskinvare og brukstilfeller. I begynnelsen av 2015 utvikles CoreOS aktivt, hovedsakelig av Alex Polvi, Brandon Philips og Michael Marineau, med hovedfunksjonene som er tilgjengelige i stabil versjon.
Container Linux tilbyr ikke noen pakkehåndtering som en måte å distribuere applikasjoner på, i stedet for at alle applikasjoner skal kjøres i containerne sine. En Container Linux-forekomst fungerer som en enkelt kontrollvert og bruker de underliggende virtualiseringsfunksjonene på Linux-kjernens operativsystemnivå for å opprette og konfigurere flere containere som fungerer som isolerte Linux- systemer . På denne måten blir partisjoneringen av ressurser mellom containere gjort gjennom flere isolerte brukerromforekomster , i stedet for å bruke en hypervisor og tilby fullverdige virtuelle maskiner . Denne tilnærmingen er avhengig av funksjonaliteten til gruppene og navneområdene til Linux-kjernen som til sammen gir muligheter for å begrense, ta hensyn til og isolere bruken av ressurser ( CPU , minne, disk I / O , etc.) for prosesssamlinger for brukerrom.
Opprinnelig brukte Container Linux utelukkende Docker som en komponent som ga et ekstra lag med abstraksjon og grensesnitt til virtualiseringsfunksjonaliteten på operativsystemnivået til Linux-kjernen, samt å gi et standardisert format for containere som lar applikasjoner kjøre i forskjellige miljøer. I desember 2014 lanserte CoreOS og begynte å støtte rkt (opprinnelig utgitt som Rocket ) som et alternativ til Docker, og ga gjennom det et annet standardisert format for applikasjonsbeholderbilder, definisjonen av containerens kjøretidsmiljø og en protokoll for oppdagelse og henting av containerbilder . CoreOS gir rkt som en implementering av den såkalte Application Container (appc) spesifikasjonen som beskriver de nødvendige egenskapene til Application Container Image (ACI); CoreOS lanserte appc og ACI som et sett med uavhengige spesifikasjoner drevet av en komité - uavhengig komité for operativsystemleverandører - med sikte på å integrere dem i Open Container Initiative (OCI); opprinnelig kalt Open Container Project eller OCP)
Containeriseringsstandarden ble kunngjort I juni 2015.
Container Linux bruker Gentoo Linux ebuild- skript for automatisk kompilering av systemkomponentene, og bruker systemd som sitt primære oppstartssystem med tett integrasjon mellom systemd og forskjellige interne mekanismer i Container Linux.
Container Linux tilbyr etcd, en demon som kjører på alle datamaskiner i en klynge og gir et dynamisk konfigurasjonsregister, slik at ulike konfigurasjonsdata enkelt og pålitelig kan deles mellom klyngemedlemmer. Siden nøkkelverdi-data som er lagret i etcd automatisk fordeles og replikeres sammen med automatisert hovedvalg og konsensus bygge ved hjelp av flåten algoritmen , blir eventuelle endringer av de lagrede data som reflekteres på den 'hele klyngen, mens de resulterende redundans hindrer cluster medlems feil fra å forårsake tap av data. I tillegg til konfigurasjonsadministrasjon, gir etcd også tjenesteoppdagelse ved å la distribuerte applikasjoner annonsere seg selv og liste opp tjenestene de tilbyr. Kommunikasjon med etcd skjer via et REST API eksponert over HTTP, som kommuniserer i JSON ; API kan brukes direkte ( for eksempel via curl eller wget ), eller indirekte av etcdctl , som er et spesialisert kommandolinjeverktøy også levert av CoreOS. . Etcd brukes også i Kubernetes programvare .
Container Linux gir også flåten sektorleder som styrer separere systemd forekomster av beholderen Linux. Fra og med 2017 er flåten ikke lenger aktivt utviklet og avskaffet til fordel for Kubernetes . Ved hjelp av fleetd oppretter Container Linux et distribuert oppstartssystem som kobler separate systemd-forekomster til en distribusjonsomfattende etcd ; internt kommuniserer fleetd- demonen med det lokale systemet gjennom D-bussen , og med distribusjonen etcd via API-en eksponert av etcd . Bruk av fleetd muliggjør distribusjon av en eller flere containere i hele klyngen, med mer avanserte alternativer, inkludert redundans, failover , distribusjon til bestemte klyngemedlemmer, avhengigheter mellom containere og gruppert distribusjon av containere. Et kommandolinjeverktøy kalt fleetctl brukes til å konfigurere og overvåke dette distribuerte oppstartssystemet; internt kommuniserer den med fleetd- demonen ved hjelp av en JSON-basert API over HTTP, denne API-en kan også brukes direkte. Når det brukes lokalt på et klyngemedlem, kommuniserer fleetctl med den lokale forekomsten av fleetd på en Unix- domenesokkel ; når den brukes eksternt, brukes SSH-tunneling med autentisering gitt gjennom offentlige SSH-nøkler .
Alle de ovennevnte kommandolinjedemonene og verktøyene ( etcd , etcdctl , fleetd og fleetctl ) er skrevet i GB og distribuert under vilkårene for Apache 2.0-lisensen.
Når du kjører på dedikert maskinvare, kan Container Linux installeres permanent på lokal lagring, for eksempel en harddisk (HDD) eller solid state- stasjon, eller startes eksternt over et nettverk med Preboot Execution Environment (PXE) generelt, eller iPXE som en av implementeringene av PXE. CoreOS støtter også distribusjoner på forskjellige virtualiseringsplattformer, inkludert Amazon EC2 , DigitalOcean, Google Compute Engine, Microsoft Azure , OpenStack , QEMU / KVM , Vagrant og VMware . Container Linux kan også installeres på Citrix XenServer, og bemerker at det er en "mal" for CoreOS.
Container Linux kan også distribueres gjennom kommersiell distribusjon kalt Tectonic , som integreres med Googles Kubernetes som et klyngeadministrasjonsverktøy. April 2015 ble Tectonic tilbudt som beta-programvare for utvalgte kunder. I tillegg tilbyr CoreOS Flannel som en komponent som implementerer et overleggsnettverk som primært kreves for integrering med Kubernetes.
Etter oppkjøpet av CoreOS, Inc. i januar 2018 kunngjorde Red Hat at de vil slå sammen CoreOS Container Linux med Red Hats Atomic-prosjekt, for å lage et nytt operativsystem, Red Hat CoreOS, mens de tilpasser samfunnets åpen kildekode Fedora Project rundt Fedora CoreOS. , som kombinerer teknologiene til de to forgjengerne.
LWN.net gjennomgikk CoreOS i 2014: “ For de som setter sammen store, distribuerte systemer - nettapplikasjoner er et godt eksempel - CoreOS ser ut til å ha mye interessant funksjonalitet. Det skal tillate applikasjoner av den typen å vokse og krympe etter behov med etterspørsel, samt gi en stabil plattform der oppgraderinger ikke er en konstant hodepine. For "massive serverdistribusjoner" ser CoreOS, eller noe med mange av de samme egenskapene, ut som fremtiden. "