CodeBlanks Logo Icon CodeBlanks

Sabit kimlik

Pod'ların sabit ad ve sıra numarasını öğrenirsin.

Sabit kimlik

StatefulSet pod'unun kimliği üç parçadan oluşur ve pod yeniden oluşsa da değişmez: sıra numarası (db-0), ağ adı (db-0.db) ve depolama (data-db-0 PVC'si). Uygulamalar bu kimliği rol belirlemek için kullanır; ör. "sıra numarası 0 olan birincildir":

# başlangıç betiği
SIRA=${HOSTNAME##*-}       # db-2 -> 2
if [ "$SIRA" = "0" ]; then
  echo "birincil olarak başlıyorum"
else
  echo "db-0.db'den çoğaltma"
fi

Kimliği doğrulamak

Pod'un ana makine adı pod adıyla aynıdır. DNS adlarını cluster içinden bir geçici pod ile sorgulayabilirsin:

$ kubectl exec db-1 -- hostname
db-1
$ kubectl run -it --rm dns --image=busybox:1.36 --restart=Never -- nslookup db-0.db
Name:      db-0.db.default.svc.cluster.local
Address:   10.244.1.12

Uygulama Kimliği sorgula

İki komut yaz: db-1'de hostname çalıştır; busybox:1.36 ile, çıkınca silinen ve yeniden başlamayan etkileşimli dns pod'unda nslookup db-0.db çalıştır.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl exec db-1 -- hostname
kubectl run -it --rm dns --image=busybox:1.36 --restart=Never -- nslookup db-0.db

Beklenen çıktı

db-1
Server:    10.96.0.10
Name:      db-0.db.default.svc.cluster.local
Address:   10.244.1.12
pod "dns" deleted

Soru ve cevaplar

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

1 db-2 pod'u başka bir node'a taşınırsa hangisi değişir?

  • Pod IP adresi Doğru cevap
  • Pod adı
  • DNS adı (db-2.db)
  • Bağlı PVC

Açıklama: IP değişir ama DNS adı yeni IP'yi gösterecek şekilde güncellenir.

2 Pod'un ana makine adını yazdır.

Soru
kubectl exec db-1 -- ____
Cevap
kubectl exec db-1 -- hostname

Açıklama: StatefulSet pod'unun hostname'i pod adıdır.

3 Eşleştir.

Kavram Anlamı
sıra numarası db-0, db-1
ağ adı db-0.db
depolama data-db-0
pod IP Değişebilir

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