Equality ve set selector
- Docker & Kubernetes kursu
- Orta seviye
- Ders 65/82
- 4 dk
Eşitlik ve küme tabanlı selector'leri öğrenirsin.
Equality ve set selector
Selector'ların iki türü vardır:
- Eşitlik tabanlı:
=,==,!=. - Küme tabanlı:
in,notin, varlık (anahtar) ve yokluk (!anahtar).
kubectl get pods -l 'ortam in (prod,staging)'
kubectl get pods -l 'katman notin (test)'
kubectl get pods -l 'surum' # surum etiketi olanlar
kubectl get pods -l 'app=web,ortam in (prod,staging),!eski'Parantez ve ünlem kabukta özel anlam taşıdığı için ifade tırnak içine alınır.
YAML'daki karşılıklar
Komut satırındaki küme ifadeleri YAML'da matchExpressions operatörlerine karşılık gelir:
# -l 'ortam in (prod,staging)'
- key: ortam
operator: In
values: [prod, staging]
# -l '!eski'
- key: eski
operator: DoesNotExist
# -l 'surum'
- key: surum
operator: ExistsUygulama Küme sorguları
Üç komut yaz: ortam değeri prod ya da staging olan pod'ları; katman değeri test olmayan pod'ları; eski etiketi olmayan pod'ları listele.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl get pods -l 'ortam in (prod,staging)'
kubectl get pods -l 'katman notin (test)'
kubectl get pods -l '!eski'Beklenen çıktı
NAME READY STATUS RESTARTS AGE web-7c5b9f6d8-abcde 1/1 Running 0 2h web-staging-9f8e7d 1/1 Running 0 1h
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 katman notin (test) ifadesi katman etiketi hiç olmayan pod'ları seçer mi?
- Hata verir
- Evet; notin anahtarı olmayanları da kapsar Doğru cevap
- Hayır
- Yalnızca default namespace'te
Açıklama: Yalnızca etiketi olan ve test olmayanlar için katman,katman notin (test) yazılır.
2 Değeri bir kümede olanları seç.
kubectl get pods -l 'ortam ____ (prod,staging)'
kubectl get pods -l 'ortam in (prod,staging)'
Açıklama: in küme tabanlı bir operatördür.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
in |
In |
notin |
NotIn |
anahtar |
Exists |
!anahtar |
DoesNotExist |