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"
Click to expand and view more
BASH
kubectl apply -f nginx-deployment.yaml
Click to expand and view more

Deployment 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-deployment
Click to expand and view more

Update-Strategien

StrategieBeschreibung
RollingUpdateSchrittweise Aktualisierung (Standard)
RecreateAlle Pods beenden, dann neue starten

Praktische Übung

  1. Erstelle ein Deployment mit 3 Replicas
  2. Skaliere auf 5 Replicas
  3. Führe ein Update auf eine neue Image-Version durch
  4. Beobachte den Rollout mit kubectl rollout status
  5. Mache ein Rollback zur vorherigen Version

Nächste Lektion: Services und Networking

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut