Junior
Headless servis ile diğer servis türleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kubernetes'te Headless servis, ClusterIP'nin olmaması ve dolayısıyla servisin kendisinin sağladığı yük dengelemenin olmamasıyla ayrılır. Bunun yerine, DNS, servisin seçicisine karşılık gelen podların IP adresleri kümesini döndürür ve bu da müşterinin doğrudan uç noktayı seçmesine olanak tanır.
Normal servis (ClusterIP, NodePort, LoadBalancer):
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP # veya NodePort, LoadBalancer
- Kendi ClusterIP'sine sahiptir.
- Trafiği podlar arasında dengeler.
- DNS, servisin ClusterIP'sini döndürür.
Headless servis:
apiVersion: v1
kind: Service
metadata:
name: my-headless-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
clusterIP: None # Anahtar fark
- ClusterIP'si yoktur.
- Yük dengeleme yapmaz.
- DNS, seçiciyle eşleşen podların IP adresleri listesini döndürür.
Karşılaştırma:
| Özellik | Normal servis | Headless servis |
|---|---|---|
| ClusterIP | Var | Yok |
| Yük dengeleme | Dahili | Yok |
| DNS çözümleme | Servisin ClusterIP'si | Pod IP'leri |
| Kullanım | Standart | Servis keşfi, veritabanları, uygulama durumu |
Headless servisler aşağıdaki senaryolarda sıkça kullanılır:
- Servis keşfi: Müşteriler, mevcut tüm podların listesini alabilir ve kendi iç mantıklarına göre uygun olanı seçebilir.
- Veritabanları: Müşterilerin, doğrudan belirli veritabanı replikalarına bağlanmasını sağlar.
- Durumlu uygulamalar: Müşterilerin, durumu koruyan belirli uygulama örneklerine yönlendirmesine olanak tanır.