Sobes.tech
Junior

Jaký je rozdíl mezi headless službou a jinými typy služeb?

sobes.tech AI

Odpověď od AI

Headless služba v Kubernetesu se odlišuje absencí ClusterIP a tím i poskytovaného zatížení samotnou službou. Místo toho DNS vrací sadu IP adres podů odpovídajících selektoru služby, což umožňuje klientovi přímo vybírat cílový bod.

Obvyklá 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 # nebo NodePort, LoadBalancer
  • Má vlastní ClusterIP.
  • Vyvažuje provoz mezi pody.
  • DNS vrací 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 # Klíčový rozdíl
  • Nemá ClusterIP.
  • Neprovádí vyvažování zátěže.
  • DNS vrací seznam IP adres podů odpovídajících selektoru.

Porovnání:

Vlastnost Obvyklá služba Headless služba
ClusterIP Přítomná Chybí
Vyvažování zátěže Integrované Chybí
DNS rozlišení ClusterIP služby IP adresy podů
Použití Standardní Objevování služeb, databáze, stav aplikace

Headless služby se často používají v následujících scénářích:

  • Objevování služeb: Klienti mohou získat seznam všech dostupných podů a vybírat podle své interní logiky.
  • Databáze: Umožňuje klientům přímo se připojit ke konkrétním replikám databáze.
  • Stavové aplikace: Umožňuje klientům adresovat konkrétní instance aplikace, které udržují stav.