Volumes persistants sur OVHcloud Managed Kubernetes Service
Découvrez comment créer des Persistent Volume Claims (PVC) et des Persistent Volumes (PV), attacher un Pod à un PVC et modifier la politique de rétention du PV.
Ce tutoriel décrit la mise en place d'un Persistent Volume (PV) sur OVHcloud Managed Kubernetes Service.
Pour provisionner un volume, une Persistent Volume Claim (PVC) est requise. Celle-ci crée automatiquement un Persistent Volume (PV) associé à un volume Public Cloud Block Storage.
Le volume Block Storage devient alors disponible pour tout pod qui le réclame via une PVC.
Prérequis
Un cluster MKS opérationnel : consultez le guide Démarrage rapide avec OVHcloud Managed Kubernetes Service pour plus d'informations.
Lorsqu'une ressource Persistent Volumes est créée au sein d'un cluster Managed Kubernetes, un volume Public Cloud Block Storage associé est automatiquement créé avec elle. Ce volume est facturé à l'heure et apparaîtra dans votre projet Public Cloud. Pour plus d'informations, reportez-vous à la documentation suivante : Tarifs des volumes Block Storage
Persistent Volumes (PV) et Persistent Volume Claims (PVC)
Comme l'indique la documentation officielle :
- Un
PersistentVolume(PV) est un espace de stockage du cluster provisionné par un administrateur ou provisionné dynamiquement à l'aide de Storage Classes. C'est une ressource du cluster, au même titre qu'un nœud est une ressource du cluster. - Une
PersistentVolumeClaim(PVC) est une demande de stockage émise par un utilisateur. Elle est similaire à un pod. Les pods consomment des ressources de nœud et les PVC consomment des ressources de PV. Les pods peuvent demander des niveaux spécifiques de ressources (CPU et mémoire). Les claims peuvent demander une taille et des modes d'accès spécifiques (par exemple, ils peuvent être montés une fois en lecture/écriture ou plusieurs fois en lecture seule).
Créer une PVC
L'exemple suivant, test-pvc.yaml, réserve un volume de 10Gi avec la storage class csi-cinder-high-speed :
Pour la créer sur un cluster :
Pour vérifier que la PersistentVolumeClaim (pvc) et son PersistentVolume (pv) associé ont bien été créés :
Exemple de résultat :
Utiliser la PVC
Ce pod d'exemple monte le volume provisionné via sa PVC :
Pour le créer sur un cluster :
Pour vérifier que le pod a bien monté le volume et démarré avec succès :
Exemple de résultat :
Storage Classes
Les storage classes désignent une technologie de stockage particulière utilisée pour provisionner un volume. Cette storage class est indiquée dans la définition de la PersistentVolumeClaim. Consultez la documentation officielle pour plus d'informations.
Les storage classes suivantes sont actuellement prises en charge sur OVHcloud Managed Kubernetes :
- la storage class
csi-cinder-high-speed-gen2repose sur du matériel incluant des disques SSD avec interfaces NVMe. L'allocation de performance est progressive et linéaire (30 IOPS alloués par Go et 0,5 Mo/s alloué par Go) avec un maximum de 20k IOPS et 1 Go/s par volume. Les performances en IOPS et en bande passante augmentent à mesure que l'espace de stockage est augmenté. - la performance de
csi-cinder-high-speedest fixe. Vous obtenez jusqu'à 3 000 IOPS par volume, quelle que soit la taille du volume. csi-cinder-classicutilise des disques mécaniques traditionnels (200 IOPS garantis, jusqu'à 64 Mo/s par volume). (Pas encore pris en charge sur le plan MKS Standard. Reportez-vous aux limitations décrites dans la sectionMulti availability zones deploymentsde notre guide Limites connues). Toutes cesStorage Classessont basées sur Cinder, le service de stockage bloc d'OpenStack. La différence entre elles réside dans le type de support physique de stockage associé. Elles sont distribuées de façon transparente, sur trois réplicas physiques locaux.
csi-cinder-high-speed est recommandée pour des volumes allant jusqu'à 100 Go. Au-delà de 100 Go par volume, une performance renforcée est obtenue avec les volumes csi-cinder-high-speed-gen2.
Classes de stockage chiffrées LUKS
OVHcloud Managed Kubernetes prend en charge les volumes de stockage bloc chiffrés LUKS à l'aide d'OVHcloud Managed Keys (OMK). Les classes de stockage chiffrées suivantes sont disponibles :
csi-cinder-high-speed-gen2-luks- Version chiffrée de High Speed Gen2 (performance progressive)csi-cinder-high-speed-luks- Version chiffrée de High Speed (3 000 IOPS fixes)csi-cinder-classic-luks- Version chiffrée de Classic (disques mécaniques)
Cette fonctionnalité est disponible dans certaines régions. Pour la disponibilité régionale détaillée et les spécifications des storage classes, consultez Datacenters, nodes et storage flavors - Classes de stockage chiffrées LUKS.
La création d'un volume chiffré LUKS génère automatiquement une OVHcloud Managed Key (OMK) dédiée.
Ne modifiez pas et ne supprimez pas cette clé si elle est liée à un volume Block Storage. Cela rendrait les données de ce volume et de tous ses snapshots définitivement irrécupérables.
Pour plus d'informations :
- Choisir la classe de stockage bloc adaptée
- Créer des volumes persistants chiffrés sur des clusters OVHcloud Managed Kubernetes avec LUKS (tutoriel complet)
Lorsque vous créez une Persistent Volume Claim sur votre cluster Kubernetes, nous provisionnons le stockage Cinder dans votre compte. Ce stockage est facturé conformément aux tarifs de stockage cloud flexible d'OVHcloud.
Depuis Kubernetes 1.11, la prise en charge de l'extension des PersistentVolumeClaims (PVC) est activée par défaut, et elle fonctionne sur les volumes Cinder. Pour savoir comment les redimensionner, reportez-vous au tutoriel Redimensionner des volumes persistants. Le redimensionnement des PVC Kubernetes permet uniquement d'agrandir les volumes, pas de les réduire.
Modes d'accès
La façon dont un PV peut être monté sur un hôte dépend des capacités du fournisseur de ressources. Chaque PV dispose de son propre ensemble de modes d'accès décrivant les capacités spécifiques de ce PV :
ReadWriteOnce: le PV peut être monté en lecture-écriture par un seul nœudReadOnlyMany: le PV peut être monté en lecture seule par plusieurs nœudsReadWriteMany: le PV peut être monté en lecture-écriture par plusieurs nœuds
Les storage classes MKS par défaut ne permettent pas de monter un PV sur plusieurs nœuds : seul le mode d'accès ReadWriteOnce est pris en charge pour le moment.
Des storage classes ReadWriteMany supplémentaires peuvent être configurées pour disposer de cette capacité :
- L'Enterprise File Storage offre un système de fichiers partagé managé, accessible via NFS.
- L'OVHcloud Cloud Disk Array offre un système de fichiers partagé managé, accessible via CephFS.
Politiques de rétention
Le comportement d'un volume lors de la suppression d'une PVC est configuré à l'aide d'une politique de rétention (reclaim policy). Cette politique est configurée au niveau de la StorageClass.
Toutes les storage classes installées par défaut sur MKS définissent actuellement la RetainPolicy sur Delete : lorsqu'une PVC est supprimée, le PV et son volume Public Cloud associé sont également supprimés.
Pour contrôler ce comportement au niveau du PersistentVolume, l'attribut persistentVolumeReclaimPolicy peut être défini dans le Spec du PV. Consultez la documentation officielle pour plus d'informations. Une autre valeur, comme Retain, peut être définie pour empêcher la suppression du volume.
Exemple : suppression d'une PVC et de ses ressources associées
Grâce à la politique de rétention Delete, si vous supprimez la PVC, le PV associé est également supprimé :
Si vous avez créé un pod attaché à une PVC et que vous souhaitez supprimer cette PVC, notez que la PVC ne peut pas être terminée tant que le pod est actif. Supprimez donc d'abord le pod, puis supprimez la PVC.
Exemple : suppression d'une PVC en conservant ses ressources associées
Pour illustrer comment modifier la politique de rétention, commencez par créer une nouvelle PVC à l'aide du fichier test-pvc.yaml :
Listez le PV et récupérez son nom :
Puis modifiez-le (patch) pour changer sa politique de rétention :
Où <your-pv-name> est le nom du PersistentVolume choisi.
Vous pouvez maintenant vérifier que le PV a la bonne politique :
Dans le résultat précédent, vous pouvez constater que le volume lié à la PVC default/test-pvc a la politique de rétention Retain.
Il ne sera pas automatiquement supprimé lorsqu'un utilisateur supprimera la PVC default/test-pvc
Aller plus loin
-
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
-
Échangez avec notre communauté d'utilisateurs.