Kubernetes

Kubernetes proti Dockerju

Kubernetes proti Dockerju
Kubernetes in Docker sta v porastu. Obe tehnologiji imata zelo različne korenine, vendar sta se v zadnjih letih prepletali na načine, ki jih ni nihče pričakoval. Skupnosti so se združile, paketi se prenašajo med vse možne operacijske sisteme in so bili v veliki meri odprtokodni, kar je povzročilo množico satelitskih projektov in konkurentov.

Vse to je lahko izjemno za vsakega novega uporabnika, ki poskuša razumeti to relativno novo paradigmo. Pogovorimo se o glavnih razlikah med Kubernetesom in Dockerjem, tako da se najprej poglobimo v to, kaj tehnologije v resnici pomenijo. Če ste seznanjeni z Dockerjem ali K8 (okrajšava od Kubernetes), lahko preskočite naprej in preberete razdelek TL; DR.

Kaj je Docker?

Docker je tehnologija zabojnikov. V istem operacijskem sistemu lahko zaženete več aplikacij, ki so med seboj ločene, brez potrebe po virtualizaciji, vendar v vseh prednostih virtualiziranega okolja. Zamislite Dockerjeve vsebnike kot resnično lahke VM-je za Linux (tudi Windows, vendar to ni tako priljubljeno).

Docker ima tri glavne komponente, najprej Dockerjev motor, ki deluje v ozadju in upravlja delujoče vsebnike in njihovo zagotavljanje. Izpostavlja REST API, ki ga porabi odjemalec Dockerja, kar uporabnikom omogoča interakcijo z Dockerjem in izdelavo novih vsebnikov ali upravljanje zagnanih.

Docker pa je ena sistemska aplikacija. To pomeni, da izvaja in upravlja vsebnike v katerem koli sistemu, za katerega se zgodi, da se izvaja.  Ogromne aplikacije s tono prometa in milijoni zahtev, ki jih zadenejo z vsega sveta, potrebujejo več kot en strežnik. Tu pride Kubernetes.

Kaj je Kubernetes?

Kubernetes izkorišča tehnologije kontejnerjev, kot je Docker, za zagon več kopij vaše aplikacije v strežnikih in podatkovnih centrih po vsem svetu.

Ena od tehnologij zabojnikov, ki jo Kubernetes uporablja, je Docker. Kubernetes je sestavljen iz cele vrste programske opreme za upravljanje vaše grozde. Zagotavlja agent za upravljanje kubeadm, ki deluje na nekaj izbranih glavnih vozliščih (vozlišča so VPS ali fizični strežniki), nato pa so na njih delovna vozlišča z nameščenim Dockerjem z kubectl ki se pogovarja z Dockerjevim motorjem za avtomatizacijo postopka predenja posod ali njihovo snemanja. Agenti kubectl, ki se izvajajo na vseh delovnih vozliščih, sprejemajo naročila glavnega vozlišča in jim dajejo povratne informacije o stanju aplikacije, ki se izvaja na njihovem vozlišču. Približno tako običajno deluje namestitev K8.

Prav tako lahko različne povezane Dockerjeve vsebnike združite v pakete (imenovane pods). Na primer, lahko sestavite vsebnike predpomnilnika baze podatkov SQL in Redis v pod, ker želite, da baza podatkov in njen predpomnilnik sobivata.

Podobno lahko drugim strokom izpostavite podskupine kot storitve (znane tudi kot mikro storitve), tako da lahko imate 50 podsklopov SQL / Redis izpostavljenih kot storitev shrambe podatkov na čelni strani aplikacije itd. Prednost, ki jo dobite, je ta, da bi 50 sklopov lahko teklo v več podatkovnih centrih in tudi če se jih nekaj spusti, bodo drugi pobrali ohlapnost.

Kubernetes je veliko več kot le tehnologija. To je način razmišljanja o zagonu vaše programske opreme v porazdeljenem sistemu.

Kubernetes brez Dockerja

Kot lahko razberemo iz zgoraj navedenega, je K8 v veliki meri odvisen od posod. Docker je le ena izmed mnogih tehnologij zabojnikov, ki obstajajo. Med drugimi so še rkt CoreOS, LXC Canonical, Jails na FreeBSD in Cone v Illumosu in SmartOS. Kubernetes bi lahko uporabili na kateri koli od teh tehnologij. Pravzaprav z rktom CoreOS deluje kar dobro.

Vendar pa so zaradi priljubljenosti Dockerja skupnost in organizacije presegale in zagotavljale, da Docker ponuja vse in vse, kar Kubernetesove zahteve zahtevajo. Iz tega razloga so tudi projekti, kot je Docker na macOS in PC, certificirani Kubernetes.

Docker brez Kubernetesa

Način, kako ima Kubernetes eno najboljših podpor pri uporabi Dockerja, se tudi sam Docker močno zanaša na Kubernetes, da v veliki meri razporedi zabojnike. Docker ima svoj sistem upravljanja in orkestracije zabojnikov, znan kot Docker Swarm, ki naj bi bil Kubernetesova alternativa.

Kljub temu, da je Docker Swarm domača tehnologija na Dockerju, ljudje zahtevajo Kubernetes in trenutne tržne napovedi kažejo, da bo K8 osvojil največji tržni delež. Docker svoj uspeh dolguje predvsem simbiozi s Kubernetesom.

TL; DR

Skratka, Docker je tehnologija kontejnerizacije, ki naj bi delovala v enem računalniku. Kubernetes je tehnologija upravljanja, ki upravlja veliko število vsebnikov v številnih računalniških vozliščih.

Docker je ena najprimernejših tehnologij, s katerimi lahko gradite svoj kup K8. Najprej se prepričajte, da se vaša aplikacija izvaja kot priklopna posoda, nato pa K8 zagotavlja, da se bo ta posoda lahko razširila po vsem svetu, če bo to potrebno v prihodnosti.

Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...
OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...