Table des matières

Kubernetes - Stockage

Créer un volume Persistant

Sur le node créer le répertoire pour y stocker des données :

mkdir /mnt/data

Sur le master créer le fichier manisfeste :

vim create_PersistentVol.yml  

Insérer le contenu suivant :

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-volume-01
  labels:
    type: local
spec:
  #storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

Explication :

Appliquer le manifeste :

kubectl apply -f create_PersistentVol.yml  

Pour lister les volumes Persistants :

kubectl get persistentvolumes
kubectl get pv

Créer une réclamation de volume Persistant

Un pod ne peut pas utiliser directement un volume. Il faut créer un objet de réclamation de volume en lien avec le volume pour qu'il puisse être utilisé par un POD.

Créer le fichier manisfeste suivant :

vim create_PersistentVolClaim.yml

Insérer le contenu suivant :

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-01
spec:
  #storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500Mi
  volumeName: pv-volume-01

Explication :

Appliquer le manifeste :

kubectl apply -f create_PersistentVolClaim.yml

Pour lister les réclamation de volumes Persistants :

kubectl get persistentvolumeClaims
kubectl get pvc  

Lancer un POD qui réclame le volume

Créer le fichier Manisteste :

vim vim create_pods_persistantVol.yml

Insérer les contenu suivant :

apiVersion: v1
kind: Pod
metadata:
  name: mydeb-pod
spec:
  nodeName: k8s-node
  volumes:
    - name: pv-storage-01
      persistentVolumeClaim:
        claimName: pv-claim-01
  containers:
    - name: mydeb
      image: debian
      command: ["sleep"]
      args: ["infinity"]
      ports:
        - containerPort: 80
      volumeMounts:
        - mountPath: "/var/www/html"
          name: pv-storage-01

Explication :

Appliquer le manifeste :

kubectl apply -f create_pods_persistantVol.yml