Ajouter du stockage NFS à votre cluster
Prérequis
Avant de commencer, veuillez vérifier les points suivants :
- Accès à une offre T0 Premium ou Dedicated
Le stockage réseau NFS NetApp est uniquement disponible pour les clients disposant d’une offre T0 Premium ou Dedicated. - Partage NFS disponible
Un partage NFS doit être provisionné via https://storage1.cloudavenue.orange-business.com/login.
Vous pouvez simuler un partage NFS avec une machine virtuelle Linux pour vos tests.
1. Accéder au Portail de Gestion du Stockage Réseau
Rendez-vous sur https://storage1.cloudavenue.orange-business.com/login.
Sélectionnez l’organisation correspondant à votre tenant VCD.
Connectez-vous avec votre compte local (le même que votre compte VCD).
Suivez cette documentation :
Portail de gestion du stockage réseau pour obtenir un serveur de stockage NFS accessible depuis le réseau Hypershift.
À partir de ce point, il est supposé qu’un partage NFS est disponible et accessible depuis les nœuds OpenShift.
2. Provisionnement NFS Dynamique dans OpenShift avec nfs-subdir-external-provisioner
Introduction
Le provisionnement NFS dynamique vous permet de créer automatiquement des volumes persistants (PVs) pour vos applications Kubernetes/OpenShift sans intervention manuelle.
Le composant https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner facilite cette intégration avec votre serveur NFS existant.
Prérequis
- Un cluster OpenShift/Kubernetes opérationnel
- Un serveur NFS accessible depuis tous les nœuds du cluster
- Les paquets client NFS installés sur chaque nœud (nfs-common sur Ubuntu/Debian)
- Accès administrateur au cluster
- Helm
3. Vérifier l’accessibilité du serveur NFS
Assurez-vous que le serveur NFS est accessible et que le partage est exporté.
Exemple de test depuis un nœud worker :
showmount -e <NFS_SERVER_IP>
4. Installer le provisionneur NFS Subdir External
a. Ajouter le dépôt Helm
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
helm repo update
b. Installer la chart
Remplacez <NFS_SERVER_IP> et <NFS_EXPORT_PATH> par vos valeurs.
helm install nfs-subdir-external-provisioner \
helm install nfs-subdir-external-provisioner \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=<NFS_SERVER_IP> \
--set nfs.path=<NFS_EXPORT_PATH> \
--set storageClass.onDelete=true
Par défaut, la StorageClass créée s’appelle nfs-client.
5. Vérifier l’installation
oc get pods
oc get sc
Vous devriez voir le pod du provisionneur en état Running et la StorageClass nfs-client.
6. Créer un PVC dynamique
Exemple de fichier nfs-pvc.yaml :
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-client
resources:
requests:
storage: 5Gi
Appliquez-le :
oc apply -f nfs-pvc.yaml
7. Utiliser le PVC dans un déploiement
Exemple de déploiement NGINX utilisant le PVC :
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: nfs-volume
mountPath: /usr/share/nginx/html
volumes:
- name: nfs-volume
persistentVolumeClaim:
claimName: nfs-pvc
Appliquez-le :
oc apply -f deployment.yaml