Learning
Kubernetes

Deployment-ek és skálázás

Deployment vs pod, YAML példa, skálázás, rolling update, rollout státusz és rollback.

Deployment-ek és skálázás

Mi az a Deployment?

A Deployment egy magasabb szintű absztrakció, amely leírja, hány példányt kell futtatni és hogyan kell frissíteni. A háttérben egy ReplicaSet biztosítja, hogy mindig a kívánt számú pod fusson.

Deployment vs. közvetlen Pod

SzempontPod (közvetlen)Deployment
ÖngyógyításNemIgen
SkálázásManuálisEgy paranccsal
FrissítésManuálisRolling update + rollback
TerheléselosztásNincsA replikák között

Deployment YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
  labels:
    app: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: myapp:1.0.0
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: "64Mi"
              cpu: "250m"
            limits:
              memory: "128Mi"
              cpu: "500m"

Skálázás

kubectl scale deployment myapp-deployment --replicas=5

Deklaratívan:

spec:
  replicas: 5
kubectl apply -f deployment.yaml

Rolling update és figyelés

kubectl set image deployment/myapp-deployment myapp=myapp:2.0.0
kubectl rollout status deployment/myapp-deployment

Visszagörgetés

kubectl rollout undo deployment/myapp-deployment
kubectl rollout undo deployment/myapp-deployment --to-revision=2

Rövid összefoglaló

  • A Deployment biztosítja, hogy a kívánt pod-szám folyamatosan fennálljon.
  • Rolling update és rollback támogatott.
  • kubectl rollout parancsokkal jól követhető a frissítés.

On this page