Rollback
- Docker & Kubernetes kursu
- Orta seviye
- Ders 29/82
- 4 dk
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ümeDuraklatma 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/webUygulama 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
# buraya yazÖrnek çözüm
kubectl rollout history deployment/web
kubectl rollout undo deployment/web --to-revision=2
kubectl rollout status deployment/webBeklenen çı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.
kubectl rollout undo deployment/web ____=1
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 |