Contactez-nous

Stockage et applications avec état (Stateful)

Maîtrisez le stockage persistant dans Kubernetes avec PV, PVC, StorageClass et déployez des applications stateful (bases de données...) grâce aux StatefulSets.

Au-delà de l'éphémère : gérer la persistance des données

Jusqu'à présent, nous nous sommes principalement concentrés sur le déploiement et l'exposition d'applications stateless. Ces applications n'ont pas besoin de conserver d'état local persistant entre les redémarrages ou les mises à jour. Les contrôleurs comme les Deployments sont parfaits pour ce type de charge de travail, car ils traitent les Pods comme des entités fongibles et jetables.

Cependant, de nombreuses applications critiques ont besoin de conserver leur état. Pensez aux bases de données, aux systèmes de fichiers distribués, aux brokers de messages avec persistance, ou à toute application qui écrit des données sur disque et s'attend à les retrouver après un redémarrage ou un déplacement. Par défaut, le système de fichiers d'un conteneur est éphémère : les données écrites sont perdues lorsque le conteneur (et donc le Pod) est supprimé.

Cette troisième partie aborde ce défi fondamental : comment gérer le stockage persistant dans Kubernetes et comment déployer et gérer des applications qui dépendent de cet état persistant et nécessitent des identités stables ?

Stockage persistant et StatefulSets : les clés du Stateful

Pour répondre aux besoins des applications stateful, Kubernetes introduit deux ensembles de concepts clés que nous explorerons dans cette partie :

  • Chapitre 8 : Gestion du stockage persistant : Ce chapitre plonge dans le système de volumes de Kubernetes, allant au-delà des volumes éphémères comme `emptyDir`. Nous découvrirons comment Kubernetes abstrait l'infrastructure de stockage sous-jacente grâce aux objets PersistentVolume (PV) et comment les applications peuvent demander ce stockage via des PersistentVolumeClaims (PVC). Nous verrons également comment le provisionnement dynamique, via les StorageClasses, automatise la création de volumes, et nous aborderons les différents modes d'accès aux volumes.
  • Chapitre 9 : Déployer des applications avec état (StatefulSets) : Une fois que nous savons comment fournir du stockage persistant, nous avons besoin d'un contrôleur de workload adapté aux applications stateful. Ce chapitre présente le StatefulSet, un contrôleur conçu spécifiquement pour les applications qui requièrent des garanties fortes sur l'identité réseau (nom DNS stable), le stockage persistant stable (un volume spécifique attaché à chaque instance) et l'ordre de déploiement et de mise à l'échelle. Nous comparerons les StatefulSets aux Deployments et verrons leurs cas d'usage typiques, comme le déploiement de bases de données en cluster.

A la fin de cette partie, vous comprendrez comment fournir une persistance des données fiable à vos applications Kubernetes et comment gérer le cycle de vie complexe des applications stateful, ouvrant ainsi la porte à l'exécution d'une gamme beaucoup plus large d'applications sur votre cluster.