Distribusjonsstrategi for Kubernetes
Finn den optimale strategien for Kubernetes-distribusjon for programmet ditt.
Bli kjent med alternativene dine for Kubernetes-distribusjon
Enten du ønsker å redusere tiden til markedslansering, skape motstandskraftige distribusjoner uten nedetid, lansere apper og funksjoner raskere eller oftere, eller operere med en større fleksibilitet, er det å velge den riktige Kubernetes-distribusjonsstrategi nøkkelen til å levere motstandskraftige programmer og infrastruktur. Hver Kubernetes-distribusjonsstrategi har sine fordeler, avhengig av dine målsetninger og behov.
Slik fungerer Kubernetes-distribusjoner
Før du implementerer en Kubernetes-distribusjonsstrategi, må du forstå delene av en Kubernetes-distribusjon og hvordan de alle fungerer sammen.
Dette inngår i en Kubernetes-distribusjon
YAML-fil
Den ønskede tilstanden for Kubernetes-klyngen din – konfigurasjonen av podder – som du beskriver, som fungerer som grunnlag for en Kubernetes-distribusjon.
Podder
Beholderne, de delte ressursene og miljøet som appen eller arbeidsflyten trenger å kjøre.
ReplicaSet
Grupper med identisk konfigurerte podder kalles ReplicaSets, og sikrer at typen og antall podder som er beskrevet i YAML-filen for en Kubernetes-distribusjon, kjører til alle tider. Hvis en podd svikter, opprettes det en ny.
Kube-kontroller-administrator
Endrer klyngens gjeldende tilstand til å samsvare med ønsket tilstand i YAML, oppretter nye podder og ReplicaSets samt oppdaterer eller fjerner eksisterende.
Kube-planlegger
Bestemmer hvordan podder og ReplicaSets distribueres blant arbeidsnodene dine i tillegg til å distribuere trafikk til disse nodene.
Utrulling
Prosessen ved å rekonfigurere klyngen fra dens gjeldende tilstand til ønsket tilstand – oppnås i de fleste tilfeller uten nedetid.
Hvordan Kubernetes-utrullinger fungerer
- Opprett en YAML-fil som beskriver konfigurasjon av klyngens ønskede tilstand (desired state configuration).
- Bruk YAML-filen til klyngen gjennom kubectl, Kubernetes kommandolinjegrensesnitt.
- Kubectl sender forespørselen til kube-apiserveren, som autentiserer og autoriserer forespørselen før endringen registreres i en database, etcd.
- Kube-kontroller-lederen overvåker kontinuerlig systemet for nye forespørsler og arbeider mot å avstemme systemtilstanden til ønsket tilstand – opprette ReplicaSets, distribusjoner og podder i prosessen.
- Når alle kontrollerne har kjørt, ser kube-planleggeren at det er podder i "ventende" tilstand fordi de ikke er planlagt å kjøre på en node ennå. Planleggeren finner egnede noder for poddene og kommuniserer deretter med kubelet-komponenten i hver node for å ta kontroll og starte distribusjonen.
Brukstilfeller for Kubernetes-distribusjon
Opprett
Rull ut helt nye Kubernetes-podder og ReplicaSets.
Oppdater
Erklær en ny ønsket tilstand og rull ut nye podder og ReplicaSets på en kontrollert måte.
Tilbakerull
Reverser Kubernetes-utrullingen til en tidligere tilstand – nyttig om den aktuelle tilstanden ikke er stabil.
Skaler
Øk antallet podder og ReplicaSets i Kubernetes-distribusjonen uten å endre dem.
Kubernetes-distribusjonsstrategier
Den beste Kubernetes-distribusjonsstrategien for scenarioet ditt avhenger av mange faktorer: hvor mye nedetid du kan tolerere (hvis noe i det hele tatt), distribusjonsmiljøet, hvor sikker du er på stabiliteten til en ny versjon eller plattform, hvorvidt du trenger å gjennomføre testing samt hva du håper å lære, ressurskostnad og tilgjengelighet, samt forretningsmål. Her er fire vanlige distribusjonsstrategier som organisasjoner bruker i produksjon.
Trinnvis
Kubernetes’ standard utrullingsmetode er en trinnvis eller rullerende distribusjon. Denne distribusjonen erstatter sakte podder en om gangen for å unngå nedetid. Gamle poder skaleres bare ned etter at nye podder er klar. Hvis distribusjonen støter på problemer, kan du stanse eller avbryte Kubernetes-distribusjonen uten å koble fra hele klyngen.
Blå/grønn
I en blå/grønn distribusjon lanserer du en ny versjon (blå) av programmet eller arbeidsflyten mens den gjeldende versjonen (grønn) fortsatt kjører. Dette gjør at du kan teste den blå versjonen i produksjon bare mens brukere er eksponert for den grønne, stabile versjonen. Når den blå versjonen er testet, vil den gradvis erstatte den grønne versjonen.
Kontrollverdi
La kundene dine teste Kubernetes-distribusjonen din ved å lansere den nye versjonen til en liten kundegruppe. Du vil kjøre et ReplicaSet av den nye versjonen sammen med den gjeldende versjonen, og etter en spesifisert tidsperiode uten feil skalerer du opp den nye versjonen mens du fjerner den gamle versjonen.
A/B-testing
På lik måte som en Kubernetes-distribusjonsstrategi med kontrollverdi, vil en strategi med A/B-testing ha en spesifikk kundegruppe som mål. Distribusjon av en A/B testing søker imidlertid å etablere mer enn en versjons stabilitet – det brukes til å teste hvor effektiv versjoner er i å oppnå forretningsmål. Den nye versjonen distribueres til brukere basert på faktorer som informasjonskapsler, geolokasjon, operativsystem og enhetstype, og den kjører ofte sammen med den gjeldende versjonen – og oppskalerer etter hvert som den nye versjonen viser hva den duger til.
Kubernetes-distribusjonsverktøy
Selv om du kan bruke kommandolinjen eller YAML-filer til å utføre enhver av disse Kubernetes-distribusjonsstrategiene, vil du bedre kunne benytte klyngene og distribusjon ved å implementere Kubernetes-distribusjonsverktøy og -tjenester som disse.
Azure DevOps
En komplett programforsyningskjede for å automatisere Kubernetes-distribusjon. Balanser hastighet og sikkerhet mens du leverer raskere skalert kode.
Helm
Et pakkeverktøy med åpen kildekode. Du kan installere, oppgradere og administrere Kubernetes-programmer som bruker diagrammer du oppretter, lager versjoner av, deler og publiserer.
Azure Kubernetes Service (AKS)
En høyt tilgjengelig, sikker og totaladministrert Kubernetes-tjeneste. Distribuer og administrer beholderbaserte apper i skyen.