CodeBlanks Logo Icon CodeBlanks

ReplicaSet selector

ReplicaSet selector ile Pod eşleştirmeyi öğrenirsin.

ReplicaSet selector

ReplicaSet pod'ları etiketleriyle sahiplenir, adlarıyla değil. Selector'la eşleşen ve sahibi olmayan bir pod elle oluşturulursa ReplicaSet onu da sayar ve fazla olduğu için birini siler. Bu yüzden etiketler iş yükleri arasında benzersiz seçilmelidir.

selector:
  matchExpressions:
    - key: app
      operator: In
      values: [api]
    - key: katman
      operator: NotIn
      values: [test]

Pod'u ReplicaSet'ten ayırmak

Bir pod'un etiketini değiştirirsen selector'la eşleşmez; ReplicaSet onu bırakır ve yerine yenisini açar. Sorunlu bir pod'u silmeden, trafikten ve ReplicaSet'ten çıkarıp incelemek için kullanışlı bir tekniktir:

kubectl label pod api-5d8f7c9b4-qrstu app=inceleme --overwrite
kubectl get pods --show-labels
# api-5d8f7c9b4-qrstu   app=inceleme   <- ayrıldı
# api-5d8f7c9b4-zzzzz   app=api        <- yerine açılan

Uygulama Pod'u ayır ve incele

Üç komut yaz: api-5d8f7c9b4-qrstu pod'unun app etiketini inceleme olarak üzerine yaz; pod'ları etiketleriyle listele; ayrılan pod'un log'larını göster.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl label pod api-5d8f7c9b4-qrstu app=inceleme --overwrite
kubectl get pods --show-labels
kubectl logs api-5d8f7c9b4-qrstu

Beklenen çıktı

pod/api-5d8f7c9b4-qrstu labeled
NAME                  READY   STATUS    LABELS
api-5d8f7c9b4-qrstu   1/1     Running   app=inceleme,pod-template-hash=5d8f7c9b4
api-5d8f7c9b4-zzzzz   1/1     Running   app=api,pod-template-hash=5d8f7c9b4
ERROR veritabanı zaman aşımı

Soru ve cevaplar

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

1 3 kopyalı ReplicaSet'in selector'ıyla eşleşen bir pod'u elle oluşturursan ne olur?

  • Hata verir
  • ReplicaSet 4 pod görür ve birini siler Doğru cevap
  • Pod yok sayılır
  • ReplicaSet 4 kopyaya geçer

Açıklama: ReplicaSet sahipsiz eşleşen pod'ları benimser.

2 Var olan etiketin üzerine yaz.

Soru
kubectl label pod api-5d8f7c9b4-qrstu app=inceleme ____
Cevap
kubectl label pod api-5d8f7c9b4-qrstu app=inceleme --overwrite

Açıklama: Var olan bir anahtarı değiştirmek için --overwrite gerekir.

3 Operatörleri eşleştir.

Kavram Anlamı
In Değerlerden biri
NotIn Değerlerden hiçbiri
Exists Anahtar var
DoesNotExist Anahtar yok

Orta seviye bölümündeki tüm dersler