Services
Ein Service exponiert eine Gruppe von Pods als einen einzigen, stabilen Endpunkt und übernimmt das Load-Balancing zwischen den Pod-Replikas.
pgadmin4-service.yaml
apiVersion: v1
kind: Service
metadata:
name: pgadmin4
spec:
type: ClusterIP
selector:
app: pgadmin4
ports:
- protocol: TCP
port: 9090
targetPort: 80
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10800 # 3 Stunden
Befehle
kubectl apply -f pgadmin4-service.yaml
kubectl get svc
kubectl describe svc/pgadmin4
kubectl get endpoints pgadmin4
kubectl get endpointslices
# Zugriff über Port-Forward (nur Entwicklung!)
kubectl port-forward svc/pgadmin4 8080:9090 --address=0.0.0.0
Service-Typen
| Typ | Beschreibung |
|---|---|
ClusterIP |
Nur innerhalb des Clusters erreichbar (Standard) |
NodePort |
Erreichbar über [NodeIP]:[NodePort] von außen |
LoadBalancer |
Externer Load Balancer (Cloud-Provider) |
ExternalName |
DNS-Alias auf externen Dienst |
DNS im Cluster
Kubernetes registriert jeden Service automatisch im internen DNS:
[service-name].[namespace].svc.cluster.local
pgadmin4.default.svc.cluster.local
Container im gleichen Namespace erreichen den Service einfach über den Namen pgadmin4.