ReplicaSet nedir?
- Docker & Kubernetes kursu
- Orta seviye
- Ders 31/82
- 4 dk
ReplicaSet'in Pod kopyalarını sağladığını öğrenirsin.
ReplicaSet nedir?
ReplicaSet'in tek görevi, selector'ıyla eşleşen pod'lardan her an tam olarak replicas kadar bulunmasını sağlamaktır. Eksikse şablondan yenisini oluşturur, fazlaysa siler. Sürüm geçişi ve geri alma bilmez; bunları Deployment ekler.
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
web-7c5b9f6d8 3 3 3 2h
web-6b4d8c7f5 0 0 0 3h # eski sürüm, geri alma içinBu yüzden ReplicaSet'ler doğrudan değil, Deployment aracılığıyla kullanılır.
Doğrudan ReplicaSet'in sorunu
Doğrudan oluşturulmuş bir ReplicaSet'in şablonundaki image'ı değiştirirsen mevcut pod'lar güncellenmez; yalnızca bundan sonra oluşacak pod'lar yeni image'ı alır. Deployment ise bu durumda yeni bir ReplicaSet açarak tüm pod'ları düzenli şekilde değiştirir.
kubectl set image rs/api api=api:2.0
kubectl get pods -l app=api -o jsonpath='{.items[*].spec.containers[0].image}'
# api:1.0 api:1.0 api:1.0 <- hâlâ eskiUygulama ReplicaSet'leri incele
İki komut yaz: app=web etiketli ReplicaSet'leri listele; ardından web deployment'ının geçmişini göster.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl get rs -l app=web
kubectl rollout history deployment/webBeklenen çıktı
NAME DESIRED CURRENT READY AGE web-7c5b9f6d8 3 3 3 2h web-6b4d8c7f5 0 0 0 3h REVISION CHANGE-CAUSE 1 <none> 2 nginx 1.27.3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 DESIRED 0 olan eski ReplicaSet neden silinmez?
- Silinemez
- Hata sonucu kalmıştır
- Yeni pod'lar oluşturur
- Geri alma için Deployment geçmişinde saklanır Doğru cevap
Açıklama: revisionHistoryLimit kaç tanesinin saklanacağını belirler.
2 ReplicaSet'leri listele.
kubectl get ____
kubectl get rs
Açıklama: rs replicasets'in kısaltmasıdır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
DESIRED |
İstenen kopya |
CURRENT |
Var olan kopya |
READY |
Hazır kopya |
DESIRED 0 |
Eski sürüm |