Label selector
- Docker & Kubernetes kursu
- Orta seviye
- Ders 63/82
- 4 dk
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 immutableUygulama 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
# buraya yazÖrnek çözüm
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.
selector:
____:
- key: ortam
operator: In
values: [prod, staging]
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 |