Kubernetes-udrulningsstrategi
Find den optimale Kubernetes-udrulningsstrategi til dit program.
Kend dine Kubernetes-udrulningsmuligheder
Uanset om du vil forkorte tiden til markedet, oprette robuste udrulninger uden nedetid, udgive programmer og funktioner hurtigere eller oftere eller have større fleksibilitet i driften, er det vigtigt at vælge den rette Kubernetes-udrulningsstrategi for at kunne levere et robust program og en robust infrastruktur. Hver Kubernetes-udrulningsstrategi har sine fordele afhængigt af dine mål og behov.
Sådan fungerer Kubernetes-udrulninger
Før du implementerer en Kubernetes-udrulningsstrategi, skal du forstå de forskellige dele i en Kubernetes-udrulning, og hvordan de fungerer sammen.
Hvad er der i en Kubernetes-udrulning
YAML-fil
Den ønskede tilstand for din Kubernetes-klynge – konfigurationen af Pods – som du beskriver, og som fungerer som grundlag for en Kubernetes-udrulning.
Pods
De objektbeholdere, delte ressourcer og det miljø, som dit program eller din arbejdsproces skal køre.
ReplicaSet
Grupper af identisk konfigurerede pods kaldes for ReplicaSets, som sikrer, at typen og antallet af pods, som er beskrevet i YAML-filen for en Kubernetes-udrulning, hele tiden kører. Hvis der opstår fejl på en pod, oprettes der en ny.
Kube-controller-manager
Ændrer den aktuelle tilstand af klyngen, så den matcher den ønskede tilstand, som beskrevet i YAML-filen, og opretter dermed nye pods og ReplicaSets samt opdaterer eller fjerner eksisterende.
Kube-scheduler
Fastslår, hvordan dine pods og ReplicaSets udrulles på dine arbejdsnoder foruden at distribuere trafik til disse noder.
Udrulning
Processen til rekonfigurering af klyngen fra den aktuelle tilstand til den ønskede tilstand, hvilket i de fleste tilfælde opnås uden nedetid.
Sådan fungerer Kubernetes-udrulninger
- Opret en YAML-fil, der beskriver den ønskede tilstandskonfiguration af klyngen.
- Anvend YAML-filen på klyngen via kubectl, som er kommandolinjegrænsefladen i Kubernetes.
- Kubectl indsender anmodningen til kube-apiserver, som godkender og autoriserer anmodningen, før ændringen registreres i databasen etcd.
- Kube-controller-manager overvåger kontinuerligt systemet for at se, om der er nye anmodninger, og arbejder mod at afstemme systemets tilstand med den ønskede tilstand, mens den opretter ReplicaSets, udrulninger og pods.
- Når alle controllere er kørt, ser kube-scheduler, at der er pods i tilstanden "afventer", fordi de endnu ikke er planlagt til at køre på en node. Planlæggeren finder passende noder til de pågældende pods og kommunikerer derefter med kubelet i hver node for at tage styringen og starte udrulningen.
Use cases for Kubernetes-udrulning
Create
Udrul helt nye pods og ReplicaSets til Kubernetes.
Opdatering
Deklarer en ny ønsket tilstand, og udrul nye pods og ReplicaSets på en kontrolleret måde.
Annullering af opdatering
Lav en Kubernetes-udrulning om til en tidligere tilstand. Det er nyttigt, hvis den aktuelle tilstand ikke er stabil.
Skalering
Øg antallet af pods og ReplicaSets i Kubernetes-udrulningen uden at ændre dem.
Kubernetes-udrulningsstrategier
Den bedste Kubernetes-udrulningsstrategi til dit scenarie afhænger af mange faktorer: Hvor meget nedetid du kan klare (hvis nogen), dit udrulningsmiljø, hvor meget tillid du har til stabiliteten af en ny version eller platform, om du har brug for at teste, samt hvad du håber på at lære, ressourceomkostninger og tilgængelighed samt forretningsmål. Her er fire almindelige udrulningsstrategier, som organisationer bruger i produktion.
Fuldt etableret
Kubernetes' standardudrulningsmetode er en fuldt etableret eller rullende udrulning. Med denne udrulning erstattes pods langsomt en ad gangen for at undgå nedetid. Gamle pods skaleres først ned, når nye pods er klar. Hvis der opstår problemer med din udrulning, kan du sætte Kubernetes-udrulningen på pause eller annullere den uden at gøre hele klyngen offline.
Blå/grøn
I en blå/grøn-udrulning udgiver du en ny version (blå) af dit program eller din arbejdsproces, mens din aktuelle version (grøn) stadig kører. Dette giver dig mulighed for at teste den blå version i produktion, mens brugerne kun udsættes for den grønne, stabile version. Når den blå version er blevet testet, erstatter den gradvist den grønne version.
Foruddefineret kontrolværdi
Giv dine kunder mulighed for at teste din Kubernetes-udrulning ved at udgive den nye version til en mindre gruppe brugere. Du kører ét ReplicaSet af den nye version sammen med den aktuelle version, og efter en periode uden fejl skalerer du derefter den nye version op, i takt med at du fjerner den gamle version.
A/B-test
Meget lig den foruddefinerede Kubernetes-udrulningsstrategi er en A/B-test målrettet en bestemt gruppe forbrugere. I en A/B-testudrulning forsøger man dog at fastslå mere end versionens stabilitet – den bruges til at teste, hvor effektiv versionen er til at opnå forretningsmålene. Den nye version distribueres til brugerne ud fra faktorer som cookies, geo-lokation, operativsystem og enhedstype, og den køres ofte ved siden af den aktuelle version, hvor der skaleres op, når den nye version har bevist sit værd.
Værktøjer til Kubernetes-udrulning
Selvom du kan bruge kommandolinjen eller YAML-filer til at udføre enhver af disse Kubernetes-udrulningsstrategier, kan du få større kontrol over dine klynger og udrulninger ved at implementere værktøjer og tjenester til Kubernetes-udrulning som disse.
Azure DevOps
En komplet forsyningskæde til programmer for at automatisere Kubernetes-udrulninger. Balancér hastighed og sikkerhed, i takt med at du leverer kode hurtigere i stor skala.
Helm
Et pakkeværktøj med åben kildekode. Installér, opgrader og administrer Kubernetes-programmer ved hjælp af diagrammer, du opretter, versionerer, deler og publicerer.
Azure Kubernetes Service (AKS)
En yderst tilgængelig, sikker og fuldt administreret Kubernetes-tjeneste. Udrul og administrer programmer, der er placeret i objektbeholdere, i cloudmiljøet.