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: v1kind: PersistentVolumeClaimmetadata: name: mes-donneesspec: accessModes: - ReadWriteOnce storageClassName: ceph-block-rwo resources: requests: storage: 10GiChoisir sa classe de stockage
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).
Créer un volume
-
Dans votre namespace : Storage › PersistentVolumeClaims → Create.
-
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.
-
Validez avec Create — le volume est provisionné en quelques secondes.
Appliquez le manifest en tête de page :
kubectl apply -f pvc.yaml -n <namespace>kubectl get pvc -n <namespace>Le STATUS passe à Bound en quelques secondes.
Monter le volume dans un pod
Exemple avec MySQL (un écrivain unique → RWO) :
apiVersion: apps/v1kind: Deploymentmetadata: name: mysqlspec: 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-donneesAgrandir un volume
Un PVC peut être agrandi à chaud, jamais réduit.
Storage › PersistentVolumeClaims → menu ⋯ du PVC → augmentez la taille → enregistrez.
kubectl edit pvc mes-donnees -n <namespace># spec.resources.requests.storage: 20GiL’espace supplémentaire apparaît dans le pod en quelques instants (certaines applications nécessitent un redémarrage pour le voir).
Bon à savoir
- 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
Pendingprolongé ? Vérifiez le quota de stockage :kubectl describe pvc mes-donnees -n <namespace>.
Étapes suivantes
- WordPress complet — un exemple réel combinant RWO et RWX ;
- Sauvegardes et restauration.