Kubernetes jämfört med Docker
Skapa, leverera och skala appar snabbare med containertekniker som fungerar bättre tillsammans.
Kubernetes jämfört med Docker-fråga
Vid diskussioner om Kubernetes kontra Docker pratar man ofta om antingen-eller: bör jag använda Kubernetes eller Docker? Det kan liknas vid att jämföra äpplen med äppelpaj – tanken att valet står mellan det ena eller det andra är en vanlig missuppfattning.
Skillnaden mellan Kubernetes och Docker är enklare att förstå om man i stället tänker ”både-och”. Du behöver faktiskt inte välja – Kubernetes och Docker är fundamentalt annorlunda tekniker som fungerar väl tillsammans vad gäller skapande, leverans och skalning av containeriserade appar.
Docker och införandet av containerinkapsling
Docker är teknik med öppen källkod – och ett filformat för containrar – som automatiserar distributionen av program som portabla, självständiga containrar som kan köras i molnet eller lokalt. Docker, Inc. har ett liknande namn men är ett av de företag som arbetar med Docker-teknik med öppen källkod som körs i Linux och Windows, detta i samarbete med molnleverantörer såsom Microsoft.
Idén med att isolera miljöer är inte ny i sig, och det finns andra typer av programvara för containerinkapsling, men under de senaste åren har Docker vuxit och blivit standardformatet för containrar. I Docker ingår Docker-motorn, som är en körningsmiljö. Den gör att du kan skapa och köra containrar på vilken utvecklingsdator som helst, och sedan lagra eller dela containeravbildningar via ett containerregister såsom Docker Hub eller Azure Container Registry.
När appar växer till flera containrar distribuerade på flera servrar blir driften av dem mer komplex. Docker ger en öppen standard för paketering och distribution av containeriserade appar, men det kan snabbt bildas potentiella komplexiteter. Hur koordinerar och schemalägger du ett stort antal containrar? Hur kommunicerar de olika containrarna i din app med varandra? Hur skalar du ut ett stort antal containerinstanser? Det är här som Kubernetes kan vara användbart.
Kubernetes och containerorkestrering
Kubernetes är en orkestreringsprogramvara med öppen källkod som tillhandahåller ett API för kontroll av hur och var containrarna ska köras. Det gör att du kan köra Docker-containrar och arbetsbelastningar, och hjälper dig att hantera en del av den driftskomplexitet som föreligger vid flytt till skalning av flera containrar som distribuerats mellan flera servrar.
Med Kubernetes kan du orkestrera ett kluster med virtuella datorer och schemalägga containrar att köras på de virtuella datorerna baserat på deras tillgängliga beräkningsresurser och resurskraven för varje container. Containrar grupperas i poddar, den grundläggande operationsenheten för Kubernetes. Dessa containrar och poddar kan skalas till önskat tillstånd, och du kan hantera deras livscykel för att hålla igång dina appar.
Vad är skillnaden mellan Kubernetes och Docker?
Kubernetes är en orkestreringsprogramvara med öppen källkod som tillhandahåller ett API för kontroll av hur och var containrarna ska köras. Det gör att du kan köra Docker-containrar och arbetsbelastningar, och hjälper dig att hantera en del av den driftskomplexitet som föreligger vid flytt till skalning av flera containrar som distribuerats mellan flera servrar.
Med Kubernetes kan du orkestrera ett kluster med virtuella datorer och schemalägga containrar att köras på de virtuella datorerna baserat på deras tillgängliga beräkningsresurser och resurskraven för varje container. Containrar grupperas i poddar, den grundläggande operationsenheten för Kubernetes. Dessa containrar och poddar kan skalas till önskat tillstånd, och du kan hantera deras livscykel för att hålla igång dina appar.
Kubernetes och Docker – de är bättre tillsammans
Tanken med containrar är att du programmerar en gång och sedan kör var som helst, men Kubernetes ger möjligheten att orkestrera och hantera alla dina containerresurser från ett och samma kontrollplan. Det underlättar nätverksanslutningar, belastningsutjämning, säkerhet och skalning i alla Kubernetes-noder som kör dina containrar. Kubernetes har även en inbyggd isoleringsmekanism såsom namnrymder, vilket gör att du kan gruppera containerresurser efter åtkomstbehörighet, mellanlagringsmiljöer och mer. Dessa mekanismer gör det enklare för IT-avdelningen att ge utvecklarna resursåtkomst med självbetjäning och möjligheten att samarbeta med komplexa arkitekturer för mikrotjänster utan att behöva simulera hela programmet i utvecklingsmiljön. Kombinationen av DevOps-metoder och containrar med Kubernetes ger dessutom en baslinje med mikrotjänstarkitekturer som främjar snabb leverans och skalbar orkestrering av molnbaserade program.
Kort sagt kan du använda Kubernetes med Docker för att:
- Göra infrastrukturen mer robust och ge appen ännu högre tillgänglighet. Din app fortsätter vara online även om vissa noder går offline.
- Göra ditt program mer skalbart. Om din app börjar få mycket högre belastning och du behöver skala ut så att användarupplevelsen kan bli bättre, är det enkelt att driftsätta fler containrar eller lägga till fler noder i Kubernetes-klustret.
Kubernetes och Docker fungerar tillsammans. Docker ger en öppen standard för paketering och distribution av containerbaserade program. Med Docker kan du skapa och köra containrar samt lagra och dela containeravbildningar. Du kan enkelt köra en Docker-version i ett Kubernetes-kluster, men Kubernetes i sig är inte en fullständig lösning. Optimera Kubernetes i produktion genom att implementera ytterligare verktyg och tjänster för hantering av säkerhet, styrning, identitet och åtkomst samt CI/CD-arbetsflöden (kontinuerlig integrering/kontinuerlig distribution) och andra DevOps-metoder.
Lösningsarkitekturer för Kubernetes och Docker i produktion
Mikrotjänster med AKS
Förenkla distributionen och hanteringen av mikrotjänstbaserad arkitektur med hjälp av AKS. AKS effektiviserar horisontell skalning, självåterställning, belastningsutjämning och hemlighetshantering.
Säker DevOps för AKS
DevOps och Kubernetes fungerar bättre tillsammans. Genom att implementera säker DevOps tillsammans med Kubernetes i Azure kan du uppnå en bra balans mellan hastighet och säkerhet och snabbt leverera kod i stor skala.
Bygg på styrkorna hos Kubernetes med Azure
Med Azure Kubernetes Service (AKS) är det enkelt att distribuera och hantera containeriserade program. Det erbjuder serverlös Kubernetes, en integrerad CI/CD-upplevelse samt säkerhet och styrning på företagsnivå. Förena utvecklings- och driftsteamen på en enda plattform och skapa, leverera och skala program snabbt och tryggt.
Resurser
Videor, webbseminarier, demos och tekniksessioner
Självstudier och dokument
Öppen källkodscommunity
Anslut dig till andra AKS-användare på GitHub, KubeCon eller Kubernetes Meetup nära dig.