Cloud Experte
StatefulSets für Datenbanken¶
KubernetesStatefulSetDatabase 3 min Lesezeit
StatefulSets für zustandsbehaftete Anwendungen in Kubernetes. Geordnetes Deployment, stabile Netzwerkidentität.
Warum StatefulSet?¶
Im Gegensatz zu Deployments: stabiler Hostname (pod-0, pod-1), geordnetes Erstellen/Löschen, Persistent Volumes pro Pod.
Beispiel¶
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres
spec:
serviceName: postgres
replicas: 3
selector:
matchLabels: {app: postgres}
template:
metadata:
labels: {app: postgres}
spec:
containers:
- name: postgres
image: postgres:16
ports: [{containerPort: 5432}]
volumeMounts:
- {name: data, mountPath: /var/lib/postgresql/data}
volumeClaimTemplates:
- metadata: {name: data}
spec:
accessModes: [ReadWriteOnce]
resources: {requests: {storage: 100Gi}}
Headless Service¶
StatefulSet benötigt einen Headless Service (clusterIP: None) für DNS-Einträge: postgres-0.postgres.default.svc.cluster.local
Zusammenfassung¶
StatefulSet für Datenbanken, Message Queues und andere zustandsbehaftete Workloads. Erwägen Sie verwaltete DB (RDS, Cloud SQL) für einfacheren Betrieb.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.