StatefulSet nedir?
- Docker & Kubernetes kursu
- İleri seviye
- Ders 13/70
- 4 dk
StatefulSet'in durumlu uygulama yönettiğini öğrenirsin.
StatefulSet nedir?
StatefulSet, durumlu (stateful) uygulamalar için Deployment'ın karşılığıdır: veritabanları, mesaj kuyrukları, Kafka, Elasticsearch. Deployment'tan üç farkı vardır:
- Sabit kimlik: pod adları sıralıdır (
db-0,db-1) ve yeniden oluşunca aynı adı alır. - Kalıcı depolama: her pod kendi PersistentVolumeClaim'ine sahiptir ve pod yeniden oluşunca aynı diske bağlanır.
- Sıralı işlem: pod'lar sırayla başlar ve tersten kapanır.
$ kubectl get pods -l app=db
NAME READY STATUS RESTARTS AGE
db-0 1/1 Running 0 10m
db-1 1/1 Running 0 9m
db-2 1/1 Running 0 8mNe zaman StatefulSet?
Kopyaları birbirinin yerine geçebilen uygulamalar (web, API) için Deployment kullanılır. Kopyaların kimliğinin önemli olduğu durumlarda StatefulSet gerekir: birincil/yedek ayrımı olan veritabanları, kendi kimliğiyle kümeye katılan düğümler (etcd, ZooKeeper), her kopyanın kendi verisini tuttuğu sistemler.
Deployment: web-7c5b9f-abcde web-7c5b9f-fghij (birbirinin yerine geçer)
StatefulSet: db-0 (birincil) db-1 (yedek) (her biri farklı)Üretimde çoğu zaman StatefulSet'i elle yazmak yerine bir operator (ör. CloudNativePG) kullanılır.
Uygulama StatefulSet'i incele
Üç komut yaz: StatefulSet'leri listele; app=db etiketli pod'ları listele; db StatefulSet'ini ayrıntılı göster.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl get sts
kubectl get pods -l app=db
kubectl describe sts dbBeklenen çıktı
NAME READY AGE db 3/3 10m NAME READY STATUS RESTARTS AGE db-0 1/1 Running 0 10m db-1 1/1 Running 0 9m db-2 1/1 Running 0 8m Name: db Replicas: 3 desired | 3 total Update Strategy: RollingUpdate
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 db-1 pod'u silinirse ne olur?
- db-3 oluşur
- Verisi silinir
- Aynı adla (db-1) yeniden oluşur ve aynı diske bağlanır Doğru cevap
- Rastgele adlı yeni bir pod oluşur
Açıklama: Kimlik ve depolama pod'dan bağımsız olarak korunur.
2 StatefulSet'leri kısaltmayla listele.
kubectl get ____
kubectl get sts
Açıklama: sts statefulsets'in kısaltmasıdır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
db-0 |
Sıralı sabit ad |
her pod kendi PVC'si |
Kalıcı depolama |
sıralı başlatma |
db-0, sonra db-1 |
Deployment |
Birbirinin yerine geçen kopyalar |