StatefulSet

StatefulSet (Kubernetes)

Ein StatefulSet ist ein spezieller Controller in Kubernetes, der für die Verwaltung zustandsbehafteter Applikationen zuständig ist. Im Gegensatz zu einem Deployment bietet ein StatefulSet stabile Identitäten für Pods, persistente Speicherbindungen und eine geordnete Start- und Stop-Reihenfolge.

StatefulSets sind ideal für Anwendungen, bei denen der Zustand einzelner Instanzen erhalten bleiben muss – z. B. Datenbanken, Messaging-Systeme oder Clustered Services wie Redis, Kafka oder Elasticsearch. Jeder Pod erhält einen eindeutigen Namen (z. B. db-0, db-1), der sich beim Restart nicht ändert.

Typische Merkmale:

  • Feste Pod-Identitäten (DNS, Hostname, Netzwerkadresse)
  • Jedem Pod wird ein eigenes PersistentVolume dauerhaft zugeordnet
  • Pods starten und beenden in definierter Reihenfolge
  • Geeignet für zustandsbehaftete oder Cluster-fähige Anwendungen

Vorteile von StatefulSets:

  • Verlässlicher Betrieb von Datenbanken und Stateful Services
  • Stabilität bei Failover oder Reboots
  • Integration mit Storage-Klassen und VolumeClaims

Typische Anwendungsfälle:

  • MySQL, PostgreSQL, MongoDB, Cassandra
  • Kafka, RabbitMQ, Elasticsearch, Redis
  • Applikationen mit replizierten Datenbanken

Verwandte Begriffe:

Deployment, Pod, PersistentVolume, Kubernetes, VolumeClaim, Cluster, StorageClass, Deployment vs StatefulSet