CodeBlanks Logo Icon CodeBlanks

Label selector

Label selector ile kaynak seçmeyi öğrenirsin.

Label selector

Selector, etiketlere göre nesne seçen sorgudur. Service, Deployment, ReplicaSet, NetworkPolicy gibi nesneler pod'ları selector'la seçer. Deployment'ta iki biçim vardır:

selector:
  matchLabels:            # eşitlik: hepsi tutmalı
    app: web
  matchExpressions:       # küme işlemleri
    - key: ortam
      operator: In
      values: [prod, staging]

Service'in selector'ı yalnızca düz eşitlik (app: web) destekler.

Deployment selector'ı değişmez

Bir Deployment oluşturulduktan sonra spec.selector değiştirilemez; aksi hâlde eski pod'larla bağı kopardı. Selector'ı değiştirmek gerekirse deployment silinip yeniden oluşturulur. Bu yüzden selector'a yalnızca kalıcı etiketler (app) konur; sürüm gibi değişen etiketler şablona eklenir ama selector'a konmaz.

$ kubectl apply -f web.yaml
The Deployment "web" is invalid: spec.selector: Invalid value: ... field is immutable

Uygulama Karma selector

Bir Deployment'ın selector bölümünü yaz (selector: ile başlayarak): matchLabels altında app: web; matchExpressions altında key: ortam, operator: In, values: [prod, staging].

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
selector:
  matchLabels:
    app: web
  matchExpressions:
    - key: ortam
      operator: In
      values: [prod, staging]

Beklenen çıktı

deployment.apps/web created

Soru ve cevaplar

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

1 matchLabels ve matchExpressions birlikte yazılırsa pod ne zaman seçilir?

  • Herhangi biri tutarsa
  • Yalnızca matchLabels'a bakılır
  • Hata verir
  • İkisinin koşulları da tutarsa Doğru cevap

Açıklama: Tüm koşullar VE ile birleşir.

2 Küme tabanlı koşulu yaz.

Soru
selector:
  ____:
    - key: ortam
      operator: In
      values: [prod, staging]
Cevap
selector:
  matchExpressions:
    - key: ortam
      operator: In
      values: [prod, staging]

Açıklama: matchExpressions anahtar, operatör ve değer listesi alır.

3 Eşleştir.

Kavram Anlamı
matchLabels Eşitlik koşulları
matchExpressions Küme koşulları
Service selector Yalnızca eşitlik
spec.selector (Deployment) Değiştirilemez

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