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.