Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Persistent Volumes v Kubernetes — stateful workloady

11. 10. 2017 1 min čtení CORE SYSTEMSai

„Kubernetes je skvělý pro stateless aplikace.” Slyšeli jsme to mockrát. Ale co databáze, message brokery? PersistentVolumes a StorageClasses posunují Kubernetes do světa stateful workloadů.

PV, PVC, StorageClass — trojice, kterou musíte znát

PersistentVolume (PV) je kus storage v clusteru. PersistentVolumeClaim (PVC) je požadavek na storage od aplikace. StorageClass definuje, jak se PV dynamicky vytváří.

Dynamický provisioning je klíč. StorageClass automaticky provisionne nový volume při vytvoření PVC.

Naše setup: Ceph on-premise, EBS v cloudu

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-rbd
provisioner: kubernetes.io/rbd
parameters:
  monitors: 10.0.0.1:6789,10.0.0.2:6789,10.0.0.3:6789
  pool: kube
reclaimPolicy: Retain

StatefulSets + PVC = stateful aplikace

StatefulSet garantuje stabilní hostname a persistent storage pro každý pod. Pod postgres-0 vždy dostane PVC data-postgres-0. I po restartu se pod připojí ke stejnému volume.

Provozujeme takto PostgreSQL, Redis a Elasticsearch. Není to bez problémů — node failure s lokálním storage znamená manuální zásah. Ale pro většinu případů to funguje spolehlivě.

Backup strategie

  • Volume snapshots (Ceph podporuje nativně)
  • Aplikační backupy (pg_dump pro PostgreSQL)
  • reclaimPolicy: Retain — nikdy Delete pro produkční data
  • Testujte restore — backup bez ověřeného restore je iluze

Stateful workloady v Kubernetes jsou realita

PersistentVolumes a StatefulSets posouvají Kubernetes za hranice stateless mikroslužeb. S dobrým storage backendem a promyšlenou strategií to funguje i pro databáze.

kubernetesstoragecephpersistentvolumes