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
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
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