Aller au contenu

Stockage persistant

Par défaut, les données écrites dans un conteneur sont éphémères : elles disparaissent quand le pod redémarre. Pour conserver vos données, demandez un volume persistant via un PersistentVolumeClaim (PVC).

Exemple complet, prêt à copier :

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mes-donnees
spec:
accessModes:
- ReadWriteOnce
storageClassName: ceph-block-rwo
resources:
requests:
storage: 10Gi

La règle en une ligne : un seul pod écrit → ceph-block-rwo ; plusieurs pods lisent/écrivent en même temps → ceph-filesystem-rwx.

ceph-block-rwo (défaut) ceph-filesystem-rwx
Mode d’accès ReadWriteOnce — un seul pod écrivain ReadWriteMany — accès partagé
Typique pour Bases de données (MySQL, PostgreSQL, Redis…) Fichiers partagés entre replicas (uploads WordPress, CMS…)
Performance Optimale (stockage bloc) Normale (système de fichiers distribué)

Les deux classes sont répliquées, chiffrées, sauvegardées chaque nuit et au même tarif. Quotas : 10 PVC et 100 Gi par classe (détails).

  1. Dans votre namespace : Storage › PersistentVolumeClaims → Create.

  2. Nommez le PVC, choisissez la Storage Class et le mode d’accès (Single-Node Read/Write pour RWO, Many-Node Read/Write pour RWX), puis la taille.

  3. Validez avec Create — le volume est provisionné en quelques secondes.

Exemple avec MySQL (un écrivain unique → RWO) :

apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8.4
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
resources:
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: data
mountPath: /var/lib/mysql
volumes:
- name: data
persistentVolumeClaim:
claimName: mes-donnees

Un PVC peut être agrandi à chaud, jamais réduit.

Storage › PersistentVolumeClaims → menu ⋯ du PVC → augmentez la taille → enregistrez.

L’espace supplémentaire apparaît dans le pod en quelques instants (certaines applications nécessitent un redémarrage pour le voir).

  • Vos volumes sont sauvegardés automatiquement chaque nuit — périmètre et procédure de restauration dans Sauvegardes et restauration ;
  • Le stockage est facturé sur la capacité provisionnée : commencez petit, agrandissez au besoin ;
  • Un PVC en statut Pending prolongé ? Vérifiez le quota de stockage : kubectl describe pvc mes-donnees -n <namespace>.