Sobes.tech
Junior

Aký je rozdiel medzi headless službou a inými typmi služieb?

sobes.tech AI

Odpoveď od AI

Headless služba v Kubernetes je odlišná absenciou ClusterIP a tým aj poskytovaním vyvažovania záťaže samotnou službou. Namiesto toho DNS vracia súbor IP adries podov, ktoré zodpovedajú selektoru služby, čo umožňuje klientovi priamo vybrať cieľový bod.

Bežná služba (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 # alebo NodePort, LoadBalancer
  • Má vlastný ClusterIP.
  • Vyvažuje prenos medzi podmi.
  • DNS vracia ClusterIP služby.

Headless služba:

apiVersion: v1
kind: Service
metadata:
  name: my-headless-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  clusterIP: None # Kľúčový rozdiel
  • Nemá ClusterIP.
  • Nevykonáva vyvažovanie záťaže.
  • DNS vracia zoznam IP adries podov, ktoré zodpovedajú selektoru.

Porovnanie:

Vlastnosť Bežná služba Headless služba
ClusterIP Existuje Neexistuje
Vyvažovanie záťaže Zabudované Chýba
DNS rozlíšenie ClusterIP služby IP adresy podov
Použitie Štandardné Objavovanie služieb, databázy, stav aplikácie

Headless služby sa často používajú v nasledovných scenároch:

  • Objavovanie služieb: Klienti môžu získať zoznam všetkých dostupných podov a vybrať si ten správny na základe svojej vnútornej logiky.
  • Databázy: Umožňuje klientom priamo sa pripojiť k špecifickým replikám databázy.
  • Stavové aplikácie: Umožňuje klientom adresovať špecifické inštancie aplikácie, ktoré si udržiavajú stav.