Programiranje

Kubernetes proti Dockerju: Razumevanje zabojnikov in orkestracije

Če ste sledili najnovejšim trendom pri razvoju programske opreme, sta nedvomno vedno znova naletela na dva izraza: Docker in Kubernetes, ki sta v bistvu okrajšava zaposode inorkestracija.

Docker-jevi vsebniki so pomagali racionalizirati postopek premikanja aplikacij z razvojem in testiranjem ter v proizvodnjo, medtem ko sta tako Docker kot Kubernetes pomagala znova izumiti način izdelave in uporabe aplikacij - kot zbirke mikro storitev namesto monolitnih skladov.

Zakaj sta Docker in Kubernetes pomembna, kako spreminjata razvoj programske opreme in kakšno vlogo ima vsak pri tem? Na ta vprašanja bom poskušal odgovoriti spodaj.

Docker in zabojniki

Vsebniki, ki jih podpirajo Linux, Windows in drugi sodobni operacijski sistemi, omogočajo izvajanje programske opreme v samostojnih mini okoljih, ki so izolirana od ostalega sistema. Zabojniki so bili podobni VM-jem, vendar niso VM-ji - so precej vitkejši, hitrejši za zagon in zaustavitev ter veliko bolj prilagodljivi in ​​prenosljivi. Ker je posode mogoče v nekaj sekundah zavrteti navzgor ali navzdol ali jih povečati ali razširiti, olajšajo zagon aplikacij v elastičnih okoljih, kot je oblak.

Linux in drugi operacijski sistemi že vrsto let podpirajo vsebniške aplikacije, vendar delo s kontejnerji ni bilo ravno uporabniku prijazno. Docker je tako v svoji odprtokodni kot komercialni inkarnaciji programska oprema, ki naredi zabojnike uporabniku prijazno in razvijalcem prijazno blago. Docker ponuja skupen nabor orodij in metafor za zabojnike, tako da lahko pakirate aplikacije v slike posod, ki jih je mogoče enostavno uvesti in ponovno uporabiti v vaši organizaciji ali drugje.

Skratka, Docker na hitro ustvari slike vsebnikov, jih prevede v različice, jih da v skupno rabo, jih premakne in razporedi na gostitelje, združljive z Dockerjem, kot delujoče vsebnike.

Kdaj uporabljam Docker in posode?

Docker in kontejnerji so najprimernejši za delo z delovnimi obremenitvami, ki morajo imeti eno ali več naslednjih lastnosti:

  • Elastična razširljivost. Ne veste, koliko primerov aplikacije boste morali zagnati, da boste zadovoljili povpraševanje. Kontejnersko aplikacijo ali storitev lahko prilagodimo našemu, da zadovoljimo povpraševanje, tako da uporabimo manj ali več primerkov svojih vsebnikov.
  • Izolacija. Ne želite, da aplikacija moti druge aplikacije. Morda boste vzporedno izvajali več različic aplikacije, da boste zadovoljili različne revizije API-ja. Ali pa želite, da osnovni sistem ostane čist (vedno dobra ideja).
  • Prenosljivost. To aplikacijo morate zagnati v različnih okoljih, vsaka nastavitev pa mora biti ponovljiva. Zabojniki vam omogočajo, da zapakirate celotno izvajalno okolje aplikacije, tako da je aplikacija enostavna za uporabo kjer koli najdete gostitelja, združljivega z Dockerjem - namizje za razvijalce, preskusni stroj QA, lokalni likalnik ali oddaljeni oblak.

Preberite več o Dockerju in vsebnikih

  • Kaj je Docker? Iskra za revolucijo posod
  • Zakaj bi morali uporabljati Docker in posode
  • Začnite z Dockerjem
  • Skrite prednosti Dockerja za zagotavljanje kakovosti
  • 12 odprtokodnih orodij, ki izboljšajo Docker
  • Več Dockerjevih novic, analiz, navodil, pregledov in nasvetov

Kuberneti in orkestracija zabojnikov

Posode so zasnovane predvsem za izolacijo procesov ali aplikacij drug od drugega in osnovnega sistema. Ustvarjanje in uvajanje posameznih vsebnikov je enostavno. Kaj pa, če želite sestaviti več vsebnikov - recimo bazo podatkov, prednji del spleta ali računalniški vmesnik - v veliko aplikacijo, ki jo je mogoče upravljati kot enoto, ne da bi vam bilo treba skrbeti za uvajanje, povezovanje, upravljanje, in skaliranje vsakega od teh vsebnikov posebej? Potrebuješ pot doorkestrirati vsi deli v funkcionalno celoto.

To je delo, ki ga prevzame Kubernetes. Če so zabojniki potniki na križarjenju, je Kubernetes direktor križarjenja.

Kubernetes na podlagi projektov, ustvarjenih pri Googlu, ponuja način za avtomatizacijo uvajanja in upravljanja aplikacij z več vsebniki na več gostiteljih, ne da bi morali neposredno upravljati vsak vsebnik. Razvijalec opisuje postavitev aplikacije v več vsebnikih, vključno s podrobnostmi, na primer o tem, kako vsak vsebnik uporablja mreženje in shranjevanje. Kubernetes skrbi za ostalo v času izvajanja. Obravnava tudi upravljanje zapletenih podrobnosti, kot so skrivnosti in konfiguracije aplikacij.

Kubernetes zahteva določeno strokovno znanje, da ga lahko dobro uporablja, čeprav je veliko bolj rešitev na ključ kot nekoč. Nekaj ​​napredka pri enostavnosti uporabe je posledica zlahka dostopnih receptov za običajne aplikacije (Helmove karte); nekaj je posledica bogastva distribucij Kubernetes, ki jih proizvajajo podjetja z blagovnimi znamkami (Red Hat, Canonical, Docker), ki sodelujejo z priljubljenimi sklopi aplikacij in razvojnimi okviri.

Kdaj uporabim Kubernetes in orkestracijo posod?

Preproste kontejnerske aplikacije, ki služijo majhnemu številu uporabnikov, običajno ne zahtevajo orkestracije, kaj šele Kubernetes. Če pa ima aplikacija več kot trivialno raven funkcionalnosti ali trivialno število uporabnikov, postane težko, da si ne izmislite kolesa, ki ga ponujajo sistemi za orkestracijo. Tu je nekaj osnovnih pravil za določanje, kdaj naj orkestracija vstopi v sliko.

  • Vaše aplikacije so zapletene. Vsaka aplikacija, ki vključuje več kot dva vsebnika, verjetno ustreza računu. Kljub temu bi lahko skromne aplikacije, ki služijo le majhnemu številu uporabnikov, organizirali z bolj minimalno rešitvijo, kot je Dockerjev roj, namesto Kubernetes.
  • Vaše aplikacije imajo visoke zahteve za skaliranje in odpornost. Kubernetes in drugi orkestratorji vam omogočajo, da deklarativno uravnotežite obremenitve in zavrtete zabojnike, tako da deklarativno opisujete želeno stanje sistema, namesto da ročno kodirate reakcije na spreminjajoče se razmere.
  • Želite kar najbolje izkoristiti sodobne tehnike CI / CD. Sistemi za orkestracijo podpirajo vzorce uvajanja za aplikacije, ki uporabljajo modro / zeleno uvajanje ali tekoče nadgradnje.

Lahko pride dan, ko Dockerja in Kubernetes zasenčijo še bolj prijazne abstrakcije in se umaknejo bolj elegantnim načinom ustvarjanja in upravljanja vsebnikov. Za zdaj pa sta Docker in Kubernetes ključnega pomena za vedeti in razumeti.

Preberite več o Kubernetesu in orkestraciji

  • Kaj je Kubernetes? Vaša naslednja platforma za prijavo
  • 4 razlogi, da bi morali uporabljati zdravilo Kubernetes
  • 10 Kubernetes distribucij, ki vodijo revolucijo kontejnerjev
  • Upravljani Kubernetes: AWS v primerjavi z Azure v primerjavi z Google Cloud
  • Pozdravljeni MicroK8s: preprostejši Kubernetes
  • Kaj je novega v Kubernetesu
  • Več Kubernetesovih novic, navodil, pregledov, nasvetov in analiz
$config[zx-auto] not found$config[zx-overlay] not found