Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes og Docker øker. Begge teknologiene har hatt veldig forskjellige røtter, men har blitt flettet sammen de siste årene på måter ingen forventet dem. Samfunnene har kommet sammen, pakker blir portet blant alle mulige operativsystemer, og i det store og hele åpen kildekode, ga de mange satellittprosjekter og konkurrenter.

Alt dette kan være overveldende for enhver ny bruker som prøver å gi mening om dette relativt nye paradigmet. La oss diskutere de store forskjellene mellom Kubernetes og Docker ved først å ta et dypere dykk i hva teknologiene egentlig betyr. Hvis du er kjent med Docker eller K8 (forkortelse for Kubernetes), kan du gå videre og lese TL; DR-delen.

Hva er Docker?

Docker er en containeriseringsteknologi. Du kan kjøre flere applikasjoner, alle isolert fra hverandre på samme operativsystem uten behov for virtualisering, men alle fordelene med et virtualisert miljø. Tenk på Docker-containere som veldig lette VM-er for Linux (også Windows, men det er ikke så populært).

Docker har tre hovedkomponenter, først Docker-motoren som kjører i bakgrunnen og administrerer kjørende containere og klargjøring av dem. Det avslører et REST API som Docker-klienten bruker, og dette gjør det mulig for brukere å samhandle med Docker og lage nye containere, eller administrere de som kjører.

Docker er imidlertid et enkelt systemapplikasjon. Det betyr at den kjører og administrerer containere på hvilket system som den tilfeldigvis kjører på.  Store applikasjoner med massevis av trafikk og millioner av forespørsler som treffer dem fra hele verden, trenger mer enn én server. Det er der Kubernetes kommer inn.

Hva er Kubernetes?

Kubernetes benytter seg av containeriseringsteknologier, som Docker, for å kjøre flere kopier av applikasjonen din på tvers av servere og datasentre over hele verden.

En av containeriseringsteknologiene som Kubernetes bruker, er Docker. Kubernetes består av en hel rekke forskjellige programvare for å administrere klyngen din. Det gir en administrasjonsagent kubeadm, som kjører på noen få valgte hovednoder (noder er VPS eller fysiske servere), og så er det arbeidernoder med Docker installert på dem med en kubectl som snakker med Docker-motoren for å automatisere prosessen med å spinne containere opp eller ta dem ned. Kubectl-agentene som kjører på alle arbeidernoder, tar bestillinger fra masternoden og gir dem tilbakemelding om tilstanden til applikasjonen som kjører på deres node. Det er omtrent slik en K8-installasjon vanligvis fungerer.

Du kan også samle forskjellige relaterte Docker-containere i pakker (kalt pods). For eksempel kan du sette sammen SQL-database og Redis cache-containere sammen i en pod, siden du vil at databasen og dens cache skal eksistere.

På samme måte kan du eksponere pods for de andre pods som tjenester (også kjent som mikroservices), slik at du kan få 50 SQL / Redis-pods eksponert som datalagringstjenesten i fronten av applikasjonen din og så videre. Fordelen du får er at de 50 podene kan kjøre på tvers av flere datasentre, og selv om noen få av dem går ned, vil andre ta slakk.

Kubernetes er mye mer enn en teknologi. Det er en måte å resonnere om å kjøre programvaren din på tvers av et distribuert system.

Kubernetes uten Docker

Som du kan se fra ovenstående, er K8 sterkt avhengig av containere. Docker er bare en av mange containeriseringsteknologier som er der ute. Andre inkluderer rkt av CoreOS, LXC av Canonical, Jails on FreeBSD og Zones in Illumos og SmartOS. Kubernetes kan potensielt implementeres på toppen av noen av disse teknologiene. Faktisk fungerer det ganske bra med rkt av CoreOS.

På grunn av Dockers popularitet har samfunnet og organisasjonene imidlertid gått utover å sørge for at Docker tilbyr alt og alt som Kubernetes spesifikasjoner ber den om å. Det er på grunn av at selv prosjekter som Docker på macOS og PC er Kubernetes-sertifiserte.

Docker uten Kubernetes

Måten Kubernetes har en av de beste støttene mens du bruker Docker, stoler Docker selv sterkt på Kubernetes for å distribuere containere i stor skala. Docker har sitt eget containeradministrasjons- og orkestreringssystem kjent som Docker Swarm, som skal være et Kubernetes-alternativ.

Til tross for at Docker Swarm er en naturlig teknologi på Docker, er Kubernetes det folk ber om, og de nåværende markedsframskrivningene ser ut til å indikere at K8 kommer til å vinne den største markedsandelen. Docker skylder suksessen i stor grad på grunn av sin symbiose med Kubernetes.

TL; DR

For å kutte en lang historie kort er Docker en containeriseringsteknologi ment å kjøre på en enkelt datamaskin. Kubernetes er en styringsteknologi som administrerer et stort antall containere på tvers av mange beregningsnoder.

Docker er tilfeldigvis en av de mest velegnede teknologiene der ute å bygge din K8-stack med. Du begynner med å sørge for at applikasjonen din kjører som en dockercontainer, og deretter sørger K8 for at denne containeren kan skaleres over hele kloden, hvis behovet for å gjøre det oppstår i fremtiden.

Beste spill å spille med håndsporing
Oculus Quest introduserte nylig den gode ideen om håndsporing uten kontrollere. Med et stadig økende antall spill og aktiviteter som utfører støtte en...
Hvordan vise OSD-overlegg i fullskjerm Linux-apper og spill
Å spille fullskjermspill eller bruke apper i distraksjonsfri fullskjermmodus kan avskrekke deg fra relevant systeminformasjon som er synlig i et panel...
Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...