Trace Id is missing
Gå til hovedindhold

Kubernetes i forhold til Docker

Skab, levér og skaler programmer hurtigere med teknologier til objektbeholdere, der fungerer bedre sammen.
 

Spørgsmålet om Kubernetes i forhold til Docker

Samtalen omkring Kubernetes i forhold til Docker handler ofte om enten... eller: Skal jeg bruge Kubernetes eller Docker? Det er ligesom at sammenligne æbler med æblekage, og det er en almindelig fejlopfattelse, at man skal vælge imellem dem.

Forskellen mellem Kubernetes og Docker forstås nemmere, når det formes som et "både... og"-spørgsmål. Faktum er, at du ikke behøver at vælge. Kubernetes og Docker er grundlæggende forskellige teknologier, som arbejder godt sammen, når du skal skabe, levere og skalere programmer, der er placeret i objektbeholdere.

Docker og den stigende popularitet af placering i objektbeholdere

Docker er en teknologi med åben kildekode – og et filformat for objektbeholdere – som kan bruges til at automatisere udrulningen af programmer som bærbare, selvstyrende objektbeholdere, der kan køre i cloudmiljøet eller det lokale miljø. Docker, Inc. deler sit navn med teknologien, men det et af de firmaer, der udvikler Docker-teknologien med åben kildekode, så den kan køre på Linux og Windows i samarbejde med cloududbydere som Microsoft.

Selvom idéen om isolation af miljøer ikke er ny, og der er andre typer software til placering i objektbeholdere, har Docker i de seneste år vokset sig så stor, at det er blevet standardformatet for objektbeholdere. Docker omfatter Docker Engine, som er et kørselsmiljø. Det giver dig mulighed for at skabe og køre objektbeholdere på en hvilken som helst udviklingsmaskine. Du kan derefter gemme eller dele afbildninger af objektbeholderen via en registreringsdatabase for objektbeholdere såsom Docker Hub eller Azure Container Registry.

Det bliver stadig mere komplekst at betjene applikationerne, efterhånden som de vokser og omfatter flere objektbeholdere installeret på flere servere. Selvom Docker leverer en åben standard til pakning og distribution af programmer placeret i objektbeholdere, kan de potentielle kompleksiteter hurtigt løbe op. Hvordan koordinerer og planlægger man mange objektbeholdere? Hvordan kommunikerer de forskellige objektbeholdere i dit program med hinanden? Hvordan skalerer man mange objektbeholderforekomster? Det er her, at Kubernetes kan hjælpe.

Orkestrering af Kubernetes og objektbeholdere

Kubernetes er orkestreringssoftware med åben kildekode, som leverer en API til at styre, hvordan og hvor disse objektbeholdere kører. Det giver dig mulighed for at køre Docker-objektbeholdere og -arbejdsbelastninger og hjælper dig med at tackle nogle af driftskompleksiteterne, når du overgår til at skalere flere objektbeholdere, der er udrullet på tværs af flere servere.

Med Kubernetes kan du orkestrere en klynge af virtuelle maskiner og planlægge, at objektbeholdere kører på disse virtuelle maskiner ud fra deres tilgængelige beregningsressourcer og ressourcekravene for hver objektbeholder. Objektbeholdere er inddelt i pods, som er den grundlæggende driftsenhed for Kubernetes. Disse objektbeholdere og pods kan skaleres til den ønskede tilstand, og du kan administrere deres livscyklus for at holde dine programmer kørende.

Hvad er forskellen mellem Kubernetes og Docker?

Kubernetes er orkestreringssoftware med åben kildekode, som leverer en API til at styre, hvordan og hvor disse objektbeholdere kører. Det giver dig mulighed for at køre Docker-objektbeholdere og -arbejdsbelastninger og hjælper dig med at tackle nogle af driftskompleksiteterne, når du overgår til at skalere flere objektbeholdere, der er udrullet på tværs af flere servere.

Med Kubernetes kan du orkestrere en klynge af virtuelle maskiner og planlægge, at objektbeholdere kører på disse virtuelle maskiner ud fra deres tilgængelige beregningsressourcer og ressourcekravene for hver objektbeholder. Objektbeholdere er inddelt i pods, som er den grundlæggende driftsenhed for Kubernetes. Disse objektbeholdere og pods kan skaleres til den ønskede tilstand, og du kan administrere deres livscyklus for at holde dine programmer kørende.

Kubernetes og Docker – bedre sammen

Med objektbeholdere skal man kun kode én gang og køre hvor som helst, men Kubernetes indeholder potentialet for at orkestrere og administrere alle objektbeholderressourcer fra et enkelt kontrolniveau. Det hjælper med netværk, justering af belastning, sikkerhed og skalering på tværs af alle Kubernetes-noder, som kører dine objektbeholdere. Kubernetes har også indbygget isolationsmekanismer såsom navneområder, hvilket giver dig mulighed for at gruppere objektbeholderressourcer efter adgangstilladelse, miljøer til midlertidig lagring m.m. Med disse opbygninger er det nemmere for it-afdelingen at sikre adgang til selvbetjeningsressourcer til udviklere og for udviklere at samarbejde om selv de mest komplekse arkitekturer for mikrotjenester uden at skulle udarbejde modeller af hele programmet i deres udviklingsmiljø. Når du kombinerer DevOps-praksis med objektbeholdere, muliggør Kubernetes yderligere en oprindelig plan for arkitekturen for mikrotjenester, som sikrer hurtig levering og skalerbar orkestrering af programmer, der oprindeligt findes i cloudmiljøet.

Kort sagt, så kan du bruge Kubernetes med Docker til følgende:

  • Gør din infrastruktur mere robust og dit program mere tilgængeligt. Programmet forbliver online, selvom nogle af noderne bliver offline.
  • Gør dit program mere skalerbart. Hvis dit program begynder at blive meget mere belastet, og du har brug for at skalere ud for at kunne levere en bedre brugeroplevelse, er det nemt at generere flere objektbeholdere eller føje flere noder til din Kubernetes-klynge.

Kubernetes og Docker fungerer sammen. Docker leverer en åben standard til pakning og distribution af applikationer i objektbeholdere. Docker gør det muligt at opbygge og køre objektbeholdere samt lagre og dele afbildninger i objektbeholdere. Man kan nemt køre Docker, der er skabt ud fra en Kubernetes-klynge, men selve Kubernetes er ikke en komplet løsning. Hvis du vil optimere Kubernetes i produktionen, skal du implementere yderligere værktøjer og tjenester for at administrere sikkerhed, styring, identitet og adgang sammen med CI/CD-arbejdsprocesser (continuous integration/continuous deployment) og anden DevOps-praksis.

Kubernetes- og Docker-løsningsarkitekturer i produktion

Diagram over mikrotjenester med AKS-løsningsarkitektur

Mikrotjenester med AKS

Brug AKS til at forenkle installationen og administrationen af arkitektur baseret på mikrotjenester. AKS strømliner vandret skalering, selvreparation, justering af belastning, hemmelig administration.

Diagram over Secure DevOps til AKS-løsningsarkitektur

Secure DevOps til AKS

DevOps og Kubernetes fungerer bedre sammen. Når du implementerer sikker DevOps sammen med Kubernetes på Azure, kan du opnå balance mellem hastighed og sikkerhed og levere kode hurtigere i stor skala.

Byg videre på styrken ved Kubernetes med Azure

Det er nemt at udrulle og administrere dine programmer, som er placeret i objektbeholdere, med Azure Kubernetes Service (AKS). Med AKS får du serveruafhængig Kubernetes, en integreret CI/CD-oplevelse samt sikkerhed og styring i virksomhedsklassen. Foren dine udviklings- og driftsteams på en enkelt platform, så de hurtigt kan skabe, levere og skalere programmer med ro i sindet.

Kom i gang med Kubernetes og Docker