CodeBlanks Logo Icon CodeBlanks

Özet - Service

ClusterIP, NodePort ve selector'ü birleştirerek bir Service yazarsın.

Özet: Service

Bu grupta:

  • Service, etiketle seçilen pod'lara sabit IP ve DNS adı verir; trafiği hazır pod'lara dağıtır.
  • port servisin, targetPort pod'un portudur; DNS: ad.namespace.svc.cluster.local.
  • Türler: ClusterIP (iç), NodePort (node portu), LoadBalancer (bulut dış IP), ExternalName (DNS takma adı).
  • Selector etiketleri VE ile birleşir; etiket değiştirerek mavi-yeşil geçiş yapılabilir.
  • kubectl expose hızlı oluşturur; EndpointSlice boşsa selector eşleşmiyordur.
kubectl expose deploy web --port=80 --target-port=8080 --type=NodePort
kubectl get svc,endpointslices

Uygulama Servisi incele

Üç komut yaz: web deployment'ını --port=80 --target-port=8080 --type=NodePort ile expose et; web servisini ayrıntılı göster; pod'ları etiketleriyle listele.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl expose deployment web --port=80 --target-port=8080 --type=NodePort
kubectl describe svc web
kubectl get pods --show-labels

Beklenen çıktı

service/web exposed
Name:                     web
Type:                     NodePort
Port:                     <unset>  80/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  31512/TCP
Endpoints:                10.244.1.5:8080,10.244.2.7:8080
NAME                  READY   STATUS    LABELS
web-7c5b9f6d8-abcde   1/1     Running   app=web,pod-template-hash=7c5b9f6d8

Soru ve cevaplar

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

1 Bir servis oluşturdun ama isteklere yanıt gelmiyor ve uç nokta listesi boş. En olası neden nedir?

  • Selector pod etiketleriyle eşleşmiyor Doğru cevap
  • Port 80 yasak
  • DNS kapalı
  • Servis türü ClusterIP

Açıklama: kubectl get pods --show-labels ile etiketler karşılaştırılır.

2 Servisi NodePort türüyle oluştur.

Soru
kubectl expose deploy web --port=80 --target-port=8080 ____=NodePort
Cevap
kubectl expose deploy web --port=80 --target-port=8080 --type=NodePort

Açıklama: --type servis türünü seçer.

3 Türleri eşleştir.

Kavram Anlamı
ClusterIP İç iletişim
NodePort Node IP:port
LoadBalancer Dış IP
ExternalName CNAME

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