CodeBlanks Logo Icon CodeBlanks

Özet - StatefulSet

YAML ve volumeClaimTemplate'i birleştirerek bir StatefulSet yazarsın.

Özet: StatefulSet

Bu grupta:

  • StatefulSet durumlu uygulamalar içindir: sabit sıralı ad, sabit ağ adı, pod başına kalıcı depolama.
  • serviceName bir headless servisi (clusterIP: None) gösterir; pod DNS'i db-0.db.
  • volumeClaimTemplates her pod için PVC (data-db-0) oluşturur; PVC'ler pod ve StatefulSet silinince kalır.
  • OrderedReady sıralı başlatır, tersten küçültür; Parallel beklemeden başlatır.
  • Güncelleme tersten ilerler; partition kanarya güncellemesi sağlar.
kubectl get sts,pvc -l app=db
kubectl scale sts db --replicas=5

Uygulama Headless servis

Bir Service YAML'ı yaz: adı db; clusterIP: None; selector app: db; port 5432.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  clusterIP: None
  selector:
    app: db
  ports:
    - port: 5432

Beklenen çıktı

service/db created
NAME   TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
db     ClusterIP   None         <none>        5432/TCP   1s

Soru ve cevaplar

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

1 Bir web API'si için StatefulSet yerine Deployment seçmenin nedeni nedir?

  • Deployment daha az YAML ister
  • Kopyalar birbirinin yerine geçer; sabit kimlik ve pod başına disk gerekmez Doğru cevap
  • StatefulSet yavaştır
  • StatefulSet ölçeklenemez

Açıklama: Durumsuz uygulamalar Deployment ile daha hızlı ve esnek güncellenir.

2 StatefulSet'i ölçekle.

Soru
kubectl scale ____ db --replicas=5
Cevap
kubectl scale sts db --replicas=5

Açıklama: StatefulSet de scale ile ölçeklenir.

3 Eşleştir.

Kavram Anlamı
StatefulSet Durumlu
Deployment Durumsuz
headless Pod DNS kayıtları
partition Kanarya

İleri seviye bölümündeki tüm dersler