Aller au contenu principal

Ajouter du stockage NFS à votre cluster

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