Cloud Fortgeschritten
Kubernetes — Stateful Workloads in der Praxis¶
KubernetesStatefulSetDatabasesStorage 6 Min. Lesezeit
Betrieb von Stateful-Anwendungen auf Kubernetes. Datenbanken, Message Broker, Storage Classes und Datenpersistenz.
Stateful vs Stateless¶
- Stabiler Hostname —
mysql-0,mysql-1 - Geordnetes Deployment — 0 → 1 → 2
- Stabiler Storage — PVC pro Pod
- Headless Service — DNS pro Pod
PostgreSQL StatefulSet¶
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgresql
spec:
serviceName: postgresql
replicas: 3
template:
spec:
containers:
- name: postgres
image: postgres:16-alpine
ports:
- containerPort: 5432
env:
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
resources:
requests:
cpu: 500m
memory: 1Gi
livenessProbe:
exec:
command: ["pg_isready", "-U", "postgres"]
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ReadWriteOnce]
storageClassName: fast-ssd
resources:
requests:
storage: 100Gi
Empfohlene Operators¶
- CloudNativePG — PostgreSQL (CNCF Sandbox)
- Percona Operators — MySQL, MongoDB, PostgreSQL
- Strimzi — Apache Kafka
- Redis Operator — Spotahome
Operators lösen: Failover, Backup, Restore, Upgrades, Connection Pooling, Monitoring.
Storage Best Practices¶
reclaimPolicy: Retainfür Daten- SSD StorageClass für Datenbanken
- CSI VolumeSnapshot für Point-in-Time Recovery
- Kein
ReadWriteManyfür Datenbanken - Disaster-Recovery-Szenarien testen
Zusammenfassung¶
Stateful Workloads auf K8s sind produktionsreif. Bevorzugen Sie Operators und testen Sie immer Failover und Restore.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.