Utrullingsstrategier: blue-green og canary
Gå lenger enn rullerende oppdateringer og lær å lansere trygt med blue-green- og canary-mønstre i Kubernetes.
Utrullingsstrategier: blue-green og canary er en gratis leksjon i Grunnleggende Kubernetes på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Kubernetes, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.
Hvorfor mer enn rullerende oppdateringer?
Rullerende oppdateringer erstatter Pod-er gradvis, men blander gamle og nye versjoner under overgangen. For risikable lanseringer ønsker du kanskje full kontroll over hvilke brukere som ser den nye versjonen.
Strategiene blue-green og canary gir deg denne kontrollen.
Ideen bak blue-green
I en blue-green-utrulling kjører du to identiske miljøer:
- Blue = den nåværende versjonen i produksjon
- Green = den nye versjonen, ferdig utrullet, men uten trafikk ennå
Du flytter all trafikk fra blue til green på én gang.
To Deployments, én Service
Hver versjon er sin egen Deployment med en versjonsetikett. Én Service velger den fargen som er aktiv.
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
spec:
replicas: 3
selector:
matchLabels:
app: web
version: blue
template:
metadata:
labels:
app: web
version: blue
spec:
containers:
- name: web
image: myapp:1.0Bytte trafikk
For å sette green i produksjon endrer du ganske enkelt Service-velgeren slik at den peker på green-versjonen. Overgangen skjer umiddelbart.
kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'Fordeler og ulemper ved blue-green
- Fordel: umiddelbar tilbakerulling ved å bytte tilbake til blue
- Fordel: ingen blanding av versjoner under lanseringen
- Ulempe: krever dobbelt så mye ressurser mens miljøene overlapper
Ideen bak canary
En canary-lansering sender først en liten del av trafikken til den nye versjonen. Hvis måleverdiene ser gode ut, skalerer du den gradvis opp.
Navnet kommer fra kanarifugler som gruvearbeidere brukte til å oppdage fare tidlig.
Canary med replikaantall
En enkel canary bruker to Deployments som deler samme Service-etikett. Trafikken fordeles omtrent etter forholdet mellom antall replikaer.
# stable: 9 replicas, canary: 1 replica => ~10% to canary
kubectl scale deployment app-stable --replicas=9
kubectl scale deployment app-canary --replicas=1Promotere en canary
Etter hvert som tilliten øker, flytter du forholdet i retning av canary-versjonen. Deretter avvikler du den gamle versjonen når canary-versjonen håndterer all trafikken.
kubectl scale deployment app-canary --replicas=5
kubectl scale deployment app-stable --replicas=5
# later, fully promote
kubectl scale deployment app-canary --replicas=10
kubectl scale deployment app-stable --replicas=0Følge med på canary-versjonen
Hele poenget med en canary er observasjon. Følg med på feilrater, svartid og logger før du promoterer den.
kubectl get pods -l version=canary
kubectl logs -l version=canary --tail=50Velge en strategi
- Blue-green: best når du ønsker en ren, umiddelbar overgang og rask tilbakerulling
- Canary: best når du vil begrense skadeomfanget og validere med reell trafikk
- Rolling: et godt standardvalg for oppdateringer med lav risiko som kjøres jevnlig
Verktøy utover kubectl
For finmasket trafikkfordeling (for eksempel nøyaktig 5 %) bruker team tjenestenett som Istio eller verktøy for progressiv levering, som Argo Rollouts og Flagger, som automatiserer canary-analyse.
Hurtigsjekk
Velg påstanden som best beskriver en canary-lansering.
Oppsummering
Du har sammenlignet avanserte strategier for lansering. Blue-green flytter all trafikk umiddelbart mellom to miljøer for rask tilbakerulling, mens canary gradvis flytter trafikken for å begrense risikoen. Begge bygger på primitiver for Deployment og Service som du allerede kjenner.
Lær deg Grunnleggende Kubernetes med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Utrullingsstrategier: blue-green og canary» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Kubernetes, inkludert «Utrullingsstrategier: blue-green og canary», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.
Hva lærer jeg i «Utrullingsstrategier: blue-green og canary»?
Gå lenger enn rullerende oppdateringer og lær å lansere trygt med blue-green- og canary-mønstre i Kubernetes. Du øver på Grunnleggende Kubernetes med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Grunnleggende Kubernetes?
Ingen tidligere erfaring er nødvendig. Grunnleggende Kubernetes på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Utrullingsstrategier: blue-green og canary»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Grunnleggende Kubernetes-leksjonen?
Ja. Alle Grunnleggende Kubernetes-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Forstå Deployments
- Skalering av applikasjoner med ReplicaSets
- Løpende oppdateringer og tilbakerullinger
- Utrullingsstrategier: blue-green og canary