DirectPV : Gérer le stockage directement attaché dans Kubernetes
DirectPV est un gestionnaire de volumes persistants distribués pour Kubernetes. Il s’agit d’un pilote CSI (Container Storage Interface) open source qui permet de découvrir, formater, monter, planifier et surveiller les disques sur des serveurs. DirectPV est conçu pour être léger et extensible à des dizaines de milliers de disques.
DirectPV est composé de trois composants principaux :
DirectPV offre les fonctionnalités suivantes :
DirectPV offre plusieurs avantages par rapport aux autres solutions de stockage pour Kubernetes :
DirectPV est un bon choix pour les cas d’utilisation suivants :
Installation de directpv via krew
kubectl krew install directpv
Déploiement de directpv dans le cluster
kubectl directpv install
Vérification du déploiement
kubectl get po -n directpv
Découverte des disques disponibles
kubectl directpv discover
directpv découvre tous les diques disponibles sur les noeuds (non montés, non formatés)
La découverte génère un fichier un fichier drives.yaml qui permettra a directpv d’initialiser les disques et les rendre utilisables par le csi
Exemple de fichier drives.yaml
version: v1
nodes:
- name: capi-hpc-md-0-2j5nk-b266g
drives:
- id: 252:32$09pFOBYG6nHf4U3FLz92YWPwfJsA8lmRu9W3yo+Wwiw=
name: vdc
size: 107374182400
make: ""
select: "yes"
- name: capi-hpc-md-1-s748l-5q4zs
drives:
- id: 252:32$P8CegyO9QTmsQTZj4nozg8LeSiqzo9ju+kEQogzn/dc=
name: vdc
size: 107374182400
make: ""
select: "yes"
kubectl directpv init drives.yaml --dangerous
Informations sur les disques et volumes
kubectl directpv info
Une nouvelle classe de stockage a été créée
la classe de stockage directpv-min-io a été créée. C’est une classe de stokage qui permet de créer directement les pv à partir d’un claim (pvc)
kubectl get sc
Patch de la classe de stockage directpv-min-io pour la mettre par défauut
kubectl patch \
storageclass directpv-min-io \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Création d’un PVC utilisant la classe de stockage par défaut
kubectl create -f -f pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-directpv-a
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
Utilisation du pvc dans un pod
cat <<‹ EOF › | kubectl create -f -
apiVersion: v1
kind: Pod
metadata:
name: nginx-vol
spec:
volumes:
- name: pvc-directpv-a-volume
persistentVolumeClaim:
claimName: pvc-directpv-a
containers:
- name: nginx-vol-container
image: nginx
ports:
- containerPort: 80
name: « http-server »
volumeMounts:
- mountPath: « /usr/share/nginx/html »
name: pvc-directpv-a-volume
EOF
**Utilisation du pvc **
Liste des Volumes et informations
kubectl directpv list volumes
kubectl directpv info
DirectPV est une solution de stockage performante, simple et évolutive pour Kubernetes. Il est idéal pour les cas d’utilisation qui nécessitent des performances élevées, une faible latence ou un stockage local temporaire.
https://blog.alterway.fr/directpv-avoir-du-stockage-bloc-distribue-facilement-dans-kubernetes.html