CodeBlanks Logo Icon CodeBlanks

Service selector

Service selector ile Pod seçmeyi öğrenirsin.

Service selector

Service'in selector'ı pod etiketleriyle eşleşir; deployment'ın adıyla ilgisi yoktur. Bu, güçlü desenlere izin verir: iki sürümün pod'ları aynı etiketi taşırsa trafik ikisine dağılır; etiketi değiştirince trafik bir sürüme geçer (mavi-yeşil dağıtım):

# mavi: app=web, surum=v1    yeşil: app=web, surum=v2
spec:
  selector:
    app: web
    surum: v2        # trafik yalnızca v2'ye

kubectl patch svc web -p '{"spec":{"selector":{"app":"web","surum":"v1"}}}'   # geri dön

Selector'sız servis

Selector yazılmazsa Kubernetes uç noktaları otomatik doldurmaz. Bu, cluster dışındaki bir veritabanına cluster içinden sabit bir adla erişmek için kullanılır; ya da ExternalName türü bir DNS takma adı verir:

apiVersion: v1
kind: Service
metadata:
  name: dis-db
spec:
  type: ExternalName
  externalName: db.sirket.com     # dis-db -> db.sirket.com (CNAME)

Uygulama Sürüme göre seçici

Bir Service YAML'ı yaz: adı web; selector iki etiketle: app: web ve surum: v2; port port: 80, targetPort: 8080.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  selector:
    app: web
    surum: v2
  ports:
    - port: 80
      targetPort: 8080

Beklenen çıktı

service/web created

Soru ve cevaplar

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

1 Service selector'ında birden çok etiket varsa pod'un seçilmesi için ne gerekir?

  • Hiçbirini taşımaması
  • Tüm etiketleri taşıması Doğru cevap
  • Herhangi birini taşıması
  • İlk etiketi taşıması

Açıklama: Etiketler VE ile birleşir.

2 Servisin selector'ını yerinde değiştir.

Soru
kubectl ____ svc web -p '{"spec":{"selector":{"app":"web","surum":"v1"}}}'
Cevap
kubectl patch svc web -p '{"spec":{"selector":{"app":"web","surum":"v1"}}}'

Açıklama: patch nesnenin bir kısmını değiştirir.

3 Eşleştir.

Kavram Anlamı
selector Pod etiketleriyle eşleşir
çoklu etiket VE ile birleşir
mavi-yeşil Etiketle trafik geçişi
ExternalName DNS takma adı

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