Beispiel-Dokumentation: Blue Green Release
Ziel
Ein Release ohne Image-Wechsel im laufenden Deployment nachvollziehen: neue Version starten, prüfen, Service umschalten, bei Bedarf zurückschalten.
Was gemacht wird
Das Lab erstellt zwei Deployments mit unterschiedlichen Inhalten. Der Service checkout zeigt zuerst auf Blue. Green ist über einen separaten Service testbar und kann anschließend den produktiven Service übernehmen.
Typische Kommandos
kubectl apply -f manifests/
kubectl get endpoints -n release-lab checkout
kubectl port-forward -n release-lab svc/checkout-green 8081:80
kubectl patch service checkout -n release-lab --type=merge -p '{"spec":{"selector":{"app":"checkout","track":"green"}}}'
Erfolg prüfen
- Blue hat drei bereite Pods.
- Green hat einen bereiten Pod.
checkoutzeigt nach dem Patch auf Green-Endpunkte.- Ein Rollback ist nur ein erneuter Service-Patch.
Typische Fehler
- Service-Selector passen zu keinem Pod.
- Green wird nicht separat geprüft, bevor produktiver Traffic umgeschaltet wird.
- Alte Blue-Pods werden zu früh gelöscht und Rollback wird unnötig teuer.