C’est une ressource 1. Kubernetes qui permet la Persistance des données.

PersistentVolume

Ce sont des volumes qui définissent un accès à des ressources dans un cluster. Ils peuvent définir cet accès selon plusieurs backend de storage. Un PV doit définir une capacité de storage, un backend, un niveau d’accès et optionnellement une politique de retention des données.

AccessModes

C’est ce champs qui permet de définir les permissions d’accès au storage par le PV. Il y a:

  • ReadWriteOnce
  • ReadOnlyMany
  • ReadWriteMany

Si la permission est Many, c’est qu’il est possible d’attacher le volume sur plus d’un Pod.

Backend de Storage

Il en existe beaucoup. Certain deprecated. C’est eux qui permette réellement l’accès au donnée.

Politique de Retention des Données

Dans le lifetime des volumes persistants, il y a une étape qui s’appelle le reclaiming. Ça survient après qu’un Pod ait utilisé le PV et sert à le garder dans un état valide. Il existe trois strategy actuellement pour reclaim les données d’un PV. Le champs persistentVolumeReclaimPolicy permet de configurer ce fonctionnement. Les valeurs possibles sont expliqué dans le Lifetime des volumes persistants.

NFS

Ce backend de storage permet de connecter un PV à un dossier NFS. Voici un exemple d’une configuration:

apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-test
spec:
	capacity:
		storage: 5Gi
	accessModes:
		- ReadWriteMany
	persistentVolumeReclaimPolicy: Retain
	nfs:
		path: /opt/sfw
		server: my-server
		readOnly: false

References