Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes och Docker ökar. Båda teknikerna har haft mycket olika rötter men har blivit sammanflätade under de senaste åren på sätt som ingen förväntade sig. Samhällen har kommit ihop, paket portas bland alla möjliga operativsystem och eftersom de till stor del är öppen källkod gav de upphov till en uppsjö av satellitprojekt och konkurrenter.

Allt detta kan vara överväldigande för alla nya användare som försöker förstå detta relativt nya paradigm. Låt oss diskutera de stora skillnaderna mellan Kubernetes och Docker genom att först ta ett djupare dyk i vad teknologierna egentligen betyder. Om du känner till Docker eller K8 (förkortning för Kubernetes) kan du gå vidare och läsa avsnittet TL; DR.

Vad är Docker?

Docker är en containeriseringsteknik. Du kan köra flera applikationer som alla är isolerade från varandra på samma operativsystem utan behov av virtualisering men alla fördelarna med en virtualiserad miljö. Tänk på Docker-containrar som riktigt lätta virtuella datorer för Linux (även Windows, men det är inte lika populärt).

Docker har tre huvudkomponenter, först Docker-motorn som körs i bakgrunden och hanterar körande containrar och deras provisionering. Det exponerar ett REST API som Docker-klienten förbrukar och detta gör det möjligt för användare att interagera med Docker och skapa nya containrar eller hantera de körande.

Docker är dock en enda systemapplikation. Det betyder att den kör och hanterar behållare på vilket system det än råkar köras på.  Stora applikationer med massor av trafik och miljontals förfrågningar som träffar dem från hela världen behöver mer än en server. Det är där Kubernetes kommer in.

Vad är Kubernetes?

Kubernetes utnyttjar containeriseringstekniker, som Docker, för att köra flera repliker av din applikation över servrar och datacenter över hela världen.

En av de containeriseringstekniker som Kubernetes använder är Docker. Kubernetes består av en hel rad olika programvaror för att hantera ditt kluster. Det ger en förvaltningsagent kubeadm, som körs på några utvalda huvudnoder (noder är VPS eller fysiska servrar) och sedan finns det arbetsnoder med Docker installerad på dem med en kubectl som pratar med Docker-motorn för att automatisera processen att snurra eller ta ner containrar. Kubectl-agenter som körs på alla arbetarnoder tar order från masternoden och ger dem feedback om tillståndet för applikationen som körs på deras nod. Det är ungefär så hur en K8-installation vanligtvis fungerar.

Du kan också samla olika relaterade Docker-behållare i paket (kallas pods). Du kan till exempel sätta ihop SQL-databas och Redis-cachebehållare tillsammans i en pod, eftersom du vill att databasen och dess cache ska samexistera.

På samma sätt kan du exponera pods för andra pods som tjänster (även kända som mikrotjänster) så att du kan få 50 SQL / Redis-pods exponerade som datalagringstjänsten i framsidan av din applikation och så vidare. Fördelen du får är att de 50 kapslarna kan springa över flera datacenter och även om några av dem går ner kommer andra att ta upp slacken.

Kubernetes är mycket mer än en teknik. Det är ett sätt att resonera om att köra din programvara över ett distribuerat system.

Kubernetes utan Docker

Som du kan se från ovanstående är K8 starkt beroende av containrar. Docker är bara en av många containeriseringstekniker som finns där. Andra inkluderar rkt av CoreOS, LXC av Canonical, Jails on FreeBSD och Zones in Illumos och SmartOS. Kubernetes kan eventuellt implementeras ovanpå någon av dessa tekniker. Faktum är att det fungerar ganska bra med rkt av CoreOS.

På grund av Dockers popularitet har community och organisationer gått utöver att se till att Docker erbjuder allt och allt som Kubernetes specifikationer ber den att. Det är på grund av denna anledning att även projekt som Docker på macOS och PC är Kubernetes-certifierade.

Docker utan Kubernetes

Sättet som Kubernetes har ett av de bästa stöd när du använder Docker, är Docker i hög grad beroende av Kubernetes för att distribuera containrar i stor skala. Docker har sitt eget containerhanterings- och orkestreringssystem som kallas Docker Swarm, vilket ska vara ett Kubernetes-alternativ.

Trots att Docker Swarm är en inbyggd teknik på Docker, är Kubernetes vad folk ber om och de nuvarande marknadsprognoserna verkar tyda på att K8 kommer att vinna den största marknadsandelen. Docker är tack vare sin framgång till stor del på grund av sin symbios med Kubernetes.

TL; DR

För att förkorta en lång historia är Docker en containeriseringsteknik som är avsedd att köras på en enda dator. Kubernetes är en hanteringsteknik som hanterar ett stort antal containrar över många beräkningsnoder.

Docker råkar vara en av de mest väl lämpade teknikerna som finns att bygga din K8-stack med. Du börjar med att se till att din applikation körs som en dockercontainer, sedan ser K8 till att den här behållaren kan skala över hela världen, om behovet av att göra det uppstår i framtiden.

Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...
Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...