Lektion 5: Deployments
Skalierbare und selbstheilende Anwendungen mit Deployments
25 min
Warum Deployments?
Während Pods die Grundbausteine sind, verwenden wir in der Praxis fast immer Deployments. Sie bieten:
- Automatische Skalierung
- Rolling Updates
- Rollback-Möglichkeiten
- Self-Healing
Deployment erstellen
Erstelle nginx-deployment.yaml:
YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"BASH
kubectl apply -f nginx-deployment.yamlDeployment verwalten
BASH
# Deployment-Status
kubectl get deployments
kubectl describe deployment nginx-deployment
# Skalieren
kubectl scale deployment nginx-deployment --replicas=5
# Rolling Update
kubectl set image deployment/nginx-deployment nginx=nginx:1.22
# Rollout-Status
kubectl rollout status deployment/nginx-deployment
# Rollout-History
kubectl rollout history deployment/nginx-deployment
# Rollback
kubectl rollout undo deployment/nginx-deploymentUpdate-Strategien
| Strategie | Beschreibung |
|---|---|
| RollingUpdate | Schrittweise Aktualisierung (Standard) |
| Recreate | Alle Pods beenden, dann neue starten |
Praktische Übung
- Erstelle ein Deployment mit 3 Replicas
- Skaliere auf 5 Replicas
- Führe ein Update auf eine neue Image-Version durch
- Beobachte den Rollout mit
kubectl rollout status - Mache ein Rollback zur vorherigen Version
Nächste Lektion: Services und Networking