Ein Kubernetes Service ist die stabile Adresse für eine Gruppe von Pods. Pods sind kurzlebig: Sie starten, sterben und bekommen dabei immer neue IP-Adressen. Der Service bündelt sie hinter einer festen virtuellen IP und einem festen DNS-Namen, damit andere Dienste sich nicht um wechselnde Adressen kümmern müssen.

So funktioniert der Service

Über einen Label-Selektor wählt der Service seine Pods aus. Der EndpointSlice-Controller des kube-controller-manager hält die Liste der aktuellen Pod-IPs aktuell. Auf jedem Knoten programmiert kube-proxy NAT-Regeln, die den Verkehr zur virtuellen IP auf eine der Pod-IPs weiterleiten.

Die Service-Typen

  • ClusterIP (Standard): nur innerhalb des Clusters erreichbar, DNS-Name <service>.<namespace>.svc.cluster.local.
  • NodePort: öffnet zusätzlich einen festen Port (30000-32767) auf jedem Knoten.
  • LoadBalancer: bindet bei Cloud-Anbietern einen externen Load Balancer an.
  • ExternalName: ein reiner DNS-Alias auf einen externen Namen.

Für HTTP- und HTTPS-Verkehr mit Host- und Pfad-Regeln steht darüber das Ingress-Objekt bereit.

Verwandte Grundlagen: Kubernetes, Namespace, DNS, Calico.