Volumes

Volume éphémère

Injecter

Le volume se déclare et se monte dans le fichier de déclaration des pods — ce qui est également vrai pour un replicaset et deployment.

Solutions de stockage

Documentation storage


Volume persistent

Persistent Volume

Persistent Volume Claims

Déclarer un PV

Lister les PV

On utilise get “persistentvolume” ou “pv” pour faire court

$ k get pv
NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv-log   100Mi      RWX            Retain           Available                                   2m38s

Déclarer un PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: claim-log-1
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Mi

Lister les PVC

On utilise la commande get “persistentvolumeclaim” ou “pvc” pour faire court

$ k get pvc
NAME          STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
claim-log-1   Pending                                                     18s
$ kubectl get pvc
NAME          STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
claim-log-1   Bound    pv-log   100Mi      RWX                           21s

Injecter un PVC

Déclarer et monter le volume sur un pod reste très similaire, à la différence près qu’on déclare le volume avec persistentVolumeClaim

Inspecter un PVC

$ k describe pvc claim-log-1 
Name:          claim-log-1
Namespace:     default
StorageClass:  
Status:        Pending
Volume:        
Labels:        <none>
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Used By:       <none>
Events:
  Type    Reason         Age               From                         Message
  ----    ------         ----              ----                         -------
  Normal  FailedBinding  1s (x7 over 85s)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set

On peut voir ici que le PVC est en état “Pending” parce qu’aucun PV avec les caractéristiques demandées n’a été trouvé

Supprimer

$ k delete pvc myclaim
persistentvolumeclaim "myclaim" deleted

Si on essaie de supprimer un pvc utilisé par un pod, le pvc reste bloqué en état Terminating

$ k get pvc
NAME          STATUS        VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
claim-log-1   Terminating   pv-log   100Mi      RWX                           8m26s

Provisioning

Static

Storage classes