ClusterIP
- Docker & Kubernetes kursu
- Orta seviye
- Ders 38/82
- 4 dk
ClusterIP service türünü öğrenirsin.
ClusterIP
ClusterIP varsayılan Service türüdür: yalnızca cluster içinden erişilebilen bir sanal IP verir. Uygulamalar arası iç iletişim (API → veritabanı) için kullanılır. YAML'da port servisin dinlediği, targetPort pod'daki container portudur:
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- port: 80
targetPort: 8080
Servis DNS adları
Cluster DNS'i (CoreDNS) her servis için ad.namespace.svc.cluster.local biçiminde bir kayıt oluşturur. Aynı namespace'ten kısa ad, başka namespace'ten ad.namespace yeterlidir:
$ kubectl run -it --rm dns-test --image=busybox:1.36 --restart=Never -- nslookup web
Name: web.default.svc.cluster.local
Address: 10.96.45.12
# başka namespace'ten: http://web.defaultclusterIP: None yazılan headless servis sanal IP almaz; DNS doğrudan pod IP'lerini döndürür (StatefulSet'lerde kullanılır).
Uygulama ClusterIP servisi
Bir Service YAML'ı yaz: adı web; selector app: web; tek port: port: 80, targetPort: 8080. (Tür yazılmazsa ClusterIP olur.)
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- port: 80
targetPort: 8080Beklenen çıktı
service/web created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bu servise başka bir pod'dan nasıl istek atılır?
- http://web:80 (ya da http://web) Doğru cevap
- http://web:8080
- http://localhost:80
- Ana makinenin IP'siyle
Açıklama: İstemci servis portunu (80) kullanır; servis onu pod'un 8080'ine iletir.
2 Pod'daki container portunu belirt.
ports:
- port: 80
____: 8080
ports:
- port: 80
targetPort: 8080
Açıklama: targetPort trafiğin iletildiği pod portudur.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
ClusterIP |
Yalnızca cluster içi |
port |
Servisin portu |
targetPort |
Pod'un portu |
clusterIP: None |
Headless servis |