Die Blue-Green-Deployment-Strategie ist eine Methode, bei der die neue Version einer Anwendung (Green) parallel zur aktuellen Version (Blue) bereitgestellt wird. Sobald die neue Version vollständig getestet und bereit zum Einsatz ist, wird der Netzwerkverkehr von der alten auf die neue Version umgeleitet.
In diesem Diagramm:
Load Balancer (LB) leitet Benutzeranfragen an die
Blue Pods weiter.Blue Umgebung ist die aktuell aktive Version, die
Live-Traffic bearbeitet.Green Umgebung ist die neue Version, die noch kein
Live-Traffic erhält und auf die Übernahme vorbereitet wird.Admin bereitet die Green-Umgebung vor und führt
Tests durch (Test Service).Load Balancer um, um den Traffic auf die Green-Umgebung zu
leiten.Die grünen gestrichelten Linien symbolisieren die Bereitschaft der Green Pods, den Traffic zu übernehmen, sobald das Umschalten durch den Administrator durchgeführt wird.
Bei einem Blue-Green-Deployment:
Das folgende Beispiel zeigt, wie man eine Blue-Green-Deployment-Strategie in einer Kubernetes-Umgebung umsetzen kann:
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
selector:
app: example-app
version: blue # Startzustand auf Blue
ports:
- protocol: TCP
port: 80
targetPort: 9376
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-app-blue
spec:
replicas: 3
selector:
matchLabels:
app: example-app
version: blue
template:
metadata:
labels:
app: example-app
version: blue
spec:
containers:
- name: example-app
image: example-app:v1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-app-green
spec:
replicas: 3
selector:
matchLabels:
app: example-app
version: green
template:
metadata:
labels:
app: example-app
version: green
spec:
containers:
- name: example-app
image: example-app:v2In diesem Beispiel:
version: blue markiert sind.example-app:v1) und eines für die Green-Version
(example-app:v2).version: green.Die Blue-Green-Strategie bietet mehrere Vorteile:
Blue-Green-Deployments erfordern eine sorgfältige Planung und Ressourcenmanagement, da effektiv zwei Produktionsumgebungen parallel betrieben werden müssen.