Déployer, mettre à l'échelle et surveiller le stockage Kubernetes

Introduction à Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Persistent Volumes et Persistent Volume Claims

Volumes persistants et demandes de volume persistant

  • Objets clés pour le stockage : Persistent Volumes (PV), gérés en parallèle des Pods
  • Les PV sont associés aux Pods via des Persistent Volume Claims (PVC)
  • Un PV associé assure la persistance des données si le Pod est arrêté, tué ou redémarré
  • Les PV séparent le stockage du calcul
Introduction à Kubernetes

Storage Classes

Classes de stockage

  • PV : approvisionnés soit
    • manuellement par un·e admin Kubernetes
    • dynamiquement par un·e utilisateur·trice
  • L'approvisionnement dynamique se fait via les Storage Classes (SC) sans intervention humaine
  • Storage Classes (SC) :

    • définies par l'admin Kubernetes
    • types variés (latence différente, p. ex., SDD vs HDD, stratégies de sauvegarde différentes)
  • En cas de doute, utilisez les Storage Classes ;-)

Introduction à Kubernetes

Assembler le tout

  • Trois objets suffisent pour faire fonctionner le stockage :

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • Un Pod qui requiert des données persistantes utilise un PersistentVolumeClaim

  • Ce PVC fait créer par Kubernetes un PersistentVolume pour le Pod
  • Ce PersistentVolume est associé au Pod demandeur
  • Une StorageClass nommée est utilisée, définissant la latence et la stratégie de sauvegarde du PV
  • Ce PersistentVolume persiste (avec les données), même si le Pod est terminé
Introduction à Kubernetes

Extraits de manifestes

Pod avec PersistentVolume

apiVersion: v1
kind: Pod
...

spec: containers: ... volumeMounts: - name: pv-mydata mountPath: /mydata
volumes: - name: pv-mydata persistentVolumeClaim: claimName: datacamp-pvc

PersistentVolumeClaim avec StorageClass

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: datacamp-pvc

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Introduction à Kubernetes

Commandes « kubectl » pour le stockage

  • kubectl offre une panoplie de commandes pour créer et surveiller le stockage Kubernetes
  • Exemples :
    • kubectl get sc dresse la liste des Storage Classes disponibles
    • kubectl get pvc dresse la liste des Persistent Volume Claims déployés
    • kubectl get pv dresse la liste des Persistent Volumes déployés
    • Comme d'habitude, kubectl apply -f <manifest> permet de déployer des ressources de stockage déclarées dans des manifestes.
Introduction à Kubernetes

Passons à la pratique !

Introduction à Kubernetes

Preparing Video For Download...