Sobes.tech
Junior

Koja je razlika između headless servisa i drugih tipova servisa?

sobes.tech АИ

Одговор од АИ

Headless servis u Kubernetesu se razlikuje po odsustvu ClusterIP i, shodno tome, pružanju balansiranja opterećenja od strane samog servisa. Umesto toga, DNS vraća skup IP adresa podova koji odgovaraju selektoru servisa, omogućavajući klijentu da direktno bira krajnju tačku.

Običan servis (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 # ili NodePort, LoadBalancer
  • Ima svoj ClusterIP.
  • Uravnotežava saobraćaj između podova.
  • DNS vraća ClusterIP servisa.

Headless servis:

apiVersion: v1
kind: Service
metadata:
  name: my-headless-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  clusterIP: None # Ključna razlika
  • Nema ClusterIP.
  • Ne vrši balansiranje opterećenja.
  • DNS vraća listu IP adresa podova koji odgovaraju selektoru.

Uporedjenje:

Osobina Običan servis Headless servis
ClusterIP Postoji Ne postoji
Balansiranje opterećenja Ugrađeno Ne postoji
DNS rešavanje ClusterIP servisa IP adrese podova
Upotreba Standardno Otkrivanje servisa, baze podataka, stanje aplikacije

Headless servisi se često koriste u sledećim scenarijima:

  • Otkrivanje servisa: Klijenti mogu dobiti listu svih dostupnih podova i izabrati odgovarajući na osnovu svoje interne logike.
  • Baze podataka: Omogućava klijentima da direktno pristupe određenim replikama baze podataka.
  • Stanje aplikacija: Omogućava klijentima da adresiraju određene instance aplikacije koje održavaju stanje.