Junior
Headless servis ile diğer servis türleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Headless servis, küme IP adresine sahip değildir ve yük dengeleme yapmaz. Bunun yerine, DNS doğrudan servis seçicisine karşılık gelen tüm podların IP adreslerini döner. Bu, müşterinin kendisinin hangi poda bağlanacağına karar vermesine veya kendi yük dengeleme algoritmasını kullanmasına olanak tanır.
Tipik kullanım seçenekleri:
- StatefulSets: Benzersiz ağ tanımlaması ve kararlı veri depolama gerektiren uygulamalar için.
- Discovery: Müşteriler doğrudan podları keşfedebilir ve bağlantıları yönetebilir.
- Özelleştirilmiş yük dengeleme: Uygulamalar, özel yük dengeleme algoritmaları uygulayabilir.
ClusterIP ve NodePort servisleriyle karşılaştırma:
| Servis Tipi | Cluster IP | Yük Dengeleme | DNS |
|---|---|---|---|
| ClusterIP | Evet | Kubernetes | Servis IP'sini döner |
| NodePort | Evet | Kubernetes | Servis IP'sini döner |
| Headless | Hayır | Hayır (istemci) | Podların IP adreslerini döner |
YAML'da headless servis tanımı:
apiVersion: v1
kind: Service
metadata:
name: benim-headless-servis
spec:
selector:
app: benim-uygulamam # Podlar için seçimci
clusterIP: None # Ana fark - küme IP'si yok
ports:
- protocol: TCP
port: 80
targetPort: 8080
benim-headless-servis'e tek bir IP üzerinden erişmek yerine, müşteri podların IP adresleri listesini alır:
$ kubectl get pods -l app=benim-uygulamam -o custom-columns=NAME:.metadata.name,IP:.status.podIP
NAME IP
benim-uygulamam-abcde 10.42.0.10
benim-uygulamam-fghij 10.42.0.11
benim-uygulamam-klmno 10.42.0.12
Daha sonra, müşteri bu IP adreslerinden herhangi birini seçerek bağlantı kurabilir.