Özet - Service
- Docker & Kubernetes kursu
- Orta seviye
- Ders 42/82
- 5 dk
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.
portservisin,targetPortpod'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 exposehızlı oluşturur; EndpointSlice boşsa selector eşleşmiyordur.
kubectl expose deploy web --port=80 --target-port=8080 --type=NodePort
kubectl get svc,endpointslicesUygulama 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
# buraya yazÖrnek çözüm
kubectl expose deployment web --port=80 --target-port=8080 --type=NodePort
kubectl describe svc web
kubectl get pods --show-labelsBeklenen çı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.
kubectl expose deploy web --port=80 --target-port=8080 ____=NodePort
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 |