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.