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
| Szempont | Pod (közvetlen) | Deployment |
|---|---|---|
| Öngyógyítás | Nem | Igen |
| Skálázás | Manuális | Egy paranccsal |
| Frissítés | Manuális | Rolling update + rollback |
| Terheléselosztás | Nincs | A 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=5Deklaratívan:
spec:
replicas: 5kubectl apply -f deployment.yamlRolling update és figyelés
kubectl set image deployment/myapp-deployment myapp=myapp:2.0.0
kubectl rollout status deployment/myapp-deploymentVisszagörgetés
kubectl rollout undo deployment/myapp-deployment
kubectl rollout undo deployment/myapp-deployment --to-revision=2Rövid összefoglaló
- A Deployment biztosítja, hogy a kívánt pod-szám folyamatosan fennálljon.
- Rolling update és rollback támogatott.
kubectl rolloutparancsokkal jól követhető a frissítés.