CodeBlanks Logo Icon CodeBlanks

Rollback

kubectl rollout undo ile geri almayı öğrenirsin.

Rollback

Deployment eski ReplicaSet'leri (varsayılan 10 tane, revisionHistoryLimit) saklar; bu sayede geri almak saniyeler sürer. Geçmiş rollout history ile görülür:

$ kubectl rollout history deployment/web
REVISION  CHANGE-CAUSE
1         <none>
2         nginx 1.27.3
3         nginx 1.28 deneme
$ kubectl rollout undo deployment/web                   # bir önceki sürüme
$ kubectl rollout undo deployment/web --to-revision=1  # belirli sürüme

Duraklatma ve sürdürme

Birden çok değişikliği (image, kaynaklar, ortam değişkenleri) tek bir rollout'ta yapmak için deployment duraklatılır; değişiklikler biriktirilir ve sürdürülünce tek seferde uygulanır. Bir rollout'u baştan tekrarlamak için restart kullanılır (ör. ConfigMap değiştiğinde):

kubectl rollout pause deployment/web
kubectl set image deployment/web nginx=nginx:1.27.3
kubectl set resources deployment/web -c nginx --limits=memory=256Mi
kubectl rollout resume deployment/web
kubectl rollout restart deployment/web

Uygulama Hatalı sürümü geri al

Üç komut yaz: web deployment'ının rollout geçmişini göster; 2. revizyona geri dön; dağıtımın bitmesini bekle.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl rollout history deployment/web
kubectl rollout undo deployment/web --to-revision=2
kubectl rollout status deployment/web

Beklenen çıktı

REVISION  CHANGE-CAUSE
1         <none>
2         nginx 1.27.3
3         nginx 1.28 deneme
deployment.apps/web rolled back
deployment "web" successfully rolled out

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 kubectl rollout undo deployment/web sonrası geçmişte ne olur?

  • Son revizyon silinir ve numara geri gider
  • Geçmiş temizlenir
  • Hiçbir şey değişmez
  • Önceki sürümün şablonu yeni bir revizyon numarasıyla geri gelir Doğru cevap

Açıklama: Geri alma da bir rollout'tur.

2 Belirli bir revizyona dön.

Soru
kubectl rollout undo deployment/web ____=1
Cevap
kubectl rollout undo deployment/web --to-revision=1

Açıklama: --to-revision geçmişteki numarayı alır.

3 Eşleştir.

Kavram Anlamı
rollout history Revizyon geçmişi
rollout undo Geri al
rollout pause/resume Değişiklik biriktir
rollout restart Pod'ları yeniden oluştur

Orta seviye bölümündeki tüm dersler