Sobes.tech
Junior

Mi a különbség a headless szolgáltatás és más típusú szolgáltatások között?

sobes.tech MI

Válasz az MI-től

A Headless szolgáltatás Kubernetesben a ClusterIP hiánya és így a szolgáltatás által biztosított terheléselosztás hiánya miatt különbözik. Ehelyett a DNS egy olyan podok IP-címeinek halmazát adja vissza, amelyek megfelelnek a szolgáltató szelektorának, lehetővé téve a kliens számára, hogy közvetlenül válassza ki a végpontot.

Normál szolgáltatás (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 # vagy NodePort, LoadBalancer
  • Saját ClusterIP-vel rendelkezik.
  • Terhelést oszt el a podok között.
  • A DNS visszaadja a szolgáltatás ClusterIP-jét.

Headless szolgáltatás:

apiVersion: v1
kind: Service
metadata:
  name: my-headless-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  clusterIP: None # Kulcsfontosságú különbség
  • Nincs ClusterIP-je.
  • Nem végzi el a terheléselosztást.
  • A DNS egy podok IP-címeinek listáját adja vissza, amelyek megfelelnek a szelektorának.

Összehasonlítás:

Jellemző Normál szolgáltatás Headless szolgáltatás
ClusterIP Van Nincs
Terheléselosztás Beépített Hiányzik
DNS feloldás Szolgáltatás ClusterIP-je Podok IP-címei
Alkalmazás Szabványos Szolgáltatás felfedezés, adatbázisok, alkalmazás állapota

A Headless szolgáltatásokat gyakran használják a következő forgatókönyvekben:

  • Szolgáltatás felfedezés: A kliensek listát kaphatnak az összes elérhető podról, és a belső logikájuk szerint választhatnak.
  • Adatbázisok: Lehetővé teszi a kliensek számára, hogy közvetlenül csatlakozzanak a konkrét adatbázis-replikákhoz.
  • Állapotot tartalmazó alkalmazások: Lehetővé teszi a kliensek számára, hogy a konkrét alkalmazás példányokat címezzék, amelyek tartják az állapotot.