Sobes.tech
Junior

Czym różni się usługa headless od innych typów usług?

sobes.tech AI

Odpowiedź od AI

Usługa Headless w Kubernetes różni się brakiem ClusterIP, a co za tym idzie, brakiem równoważenia obciążenia zapewnianego przez sam serwis. Zamiast tego DNS zwraca zestaw adresów IP podów odpowiadających selektorowi serwisu, umożliwiając klientowi bezpośredni wybór punktu końcowego.

Zwykły serwis (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 # lub NodePort, LoadBalancer
  • Posiada własny ClusterIP.
  • Równoważy ruch między podami.
  • DNS zwraca ClusterIP serwisu.

Serwis Headless:

apiVersion: v1
kind: Service
metadata:
  name: my-headless-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  clusterIP: None # Kluczowa różnica
  • Nie posiada ClusterIP.
  • Nie wykonuje równoważenia obciążenia.
  • DNS zwraca listę adresów IP podów odpowiadających selektorowi.

Porównanie:

Cecha Zwykły serwis Headless serwis
ClusterIP Jest Nie
Równoważenie obciążenia Wbudowane Brak
Rozwiązywanie DNS ClusterIP serwisu Adresy IP podów
Zastosowanie Standardowe Odkrywanie serwisów, bazy danych, stan aplikacji

Serwisy Headless często są używane w następujących scenariuszach:

  • Odkrywanie serwisów: Klienci mogą uzyskać listę dostępnych podów i wybrać odpowiedni na podstawie własnej logiki.
  • Bazy danych: Umożliwia klientom bezpośrednie połączenie z konkretnymi replikami bazy danych.
  • Aplikacje z stanem: Umożliwia klientom adresowanie konkretnych instancji aplikacji zachowujących stan.