Sobes.tech
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.