GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un volume persistant basé sur NFS dans Kubernetes

Il est recommandé de placer les données du pod dans un volume persistant afin que les données soient disponibles même après l'arrêt du pod. Dans Kubernetes (k8s), les volumes persistants basés sur NFS peuvent être utilisés à l'intérieur des pods. Dans cet article, nous apprendrons comment configurer le volume persistant et la revendication de volume persistant, puis nous discuterons de la manière dont nous pouvons utiliser le volume persistant via son nom de revendication dans les pods k8s.

Je suppose que nous avons un cluster k8s fonctionnel et un serveur NFS. Voici les détails de la configuration du laboratoire,

  • IP du serveur NFS =192.168.1.40
  • Partage NFS =/opt/k8s-pods/data
  • Cluster K8s = un nœud maître et deux nœuds de travail

Remarque : Assurez-vous que le serveur NFS est accessible à partir des noeuds worker et essayez de monter le partage nfs sur chaque worker une fois pour le test.

Créez un fichier dans le partage nfs car nous monterons ce partage dans le pod nginx plus tard dans l'article.

[[email protected] ~]$ echo "Bonjour, stockage NFS NGINX"> /opt/k8s-pods/data/index.html

Configurer la PV basée sur NFS (volume persistant)

Pour créer un volume persistant basé sur NFS dans K8s, créez le fichier yaml sur le nœud maître avec le contenu suivant,

[[email protected] ~]$ vim nfs-pv.yamlapiVersion :v1kind :PersistentVolumemetadata :  nom :nfs-pvspec :  capacité :    stockage :10 Gi  volumeMode :Filesystem  accessModes :    - ReadWriteMany  persistentVolumeReclaimPolicy :Recycle  storageClassName :nfs  mountOptions :    - hard - nfsvers=4.1  nfs :    chemin :/opt/k8s-pods/data    serveur :192.168.1.40

Enregistrez et quittez le fichier

Créez maintenant un volume persistant à l'aide du fichier yaml créé ci-dessus, exécutez

[[email protected] ~]$ kubectl create -f nfs-pv.yamlpersistentvolume/nfs-pv créé[[email protected] ~]$

Exécutez la commande kubectl suivante pour vérifier l'état du volume persistant

 [[e-mail protégé] ~] $ kubectl get pvname modes d'accès à la capacité de récupération du statut de politique de la politique storageclass raison amenfs-pv 10gi rwx recycler disponible NFS 20S [[e-mail protégé] ~] $ 

La sortie ci-dessus confirme que le PV a été créé avec succès et qu'il est disponible.

Configurer la revendication de volume persistant

Pour monter un volume persistant dans un pod, nous devons spécifier sa demande de volume persistant. Alors, créons une revendication de volume persistant en utilisant le fichier yaml suivant

[[email protected] ~]$ vi nfs-pvc.yamlapiVersion : v1kind :PersistentVolumeClaimmetadata :  nom :nfs-pvcspec :  storageClassName :nfs accessModes :    - ReadWriteMany ressources :    requests :      stockage :10 Gi

Enregistrez et quittez le fichier.

Exécutez la commande kubectl ci-dessous pour créer pvc en utilisant le fichier yaml ci-dessus,

[[email protected] ~]$ kubectl create -f nfs-pvc.yamlpersistentvolumeclaim/nfs-pvc créé[[email protected] ~]$

Après l'exécution ci-dessus, le plan de contrôle recherchera un volume persistant qui satisfait à l'exigence de réclamation avec le même nom de classe de stockage, puis il liera la réclamation au volume persistant, l'exemple est illustré ci-dessous :

 [[Email Protected] ~] $ kubectl get pvc nfs-pvcname Volume Volume Capacity Access modes storageclass agenfs-pvc bound nfs-pv 10gi rwx nfs 3m54s [[e-mail protégé] ~] $ [[e-mail protégé] ~] $ KUBECTL GET PV NFS-PVNAME MODES D'ACCÈS DE CAPPACITÉ RECHERCHE POLITIQUE POLITIQUE PLACE STORAGECLASS Raison AGENFS-PV 10GI RWX Recycle Bound / NFS-PVC NFS 18M [[Email Protected] ~] $ 

La sortie ci-dessus confirme que la revendication (nfs-pvc) est liée au volume persistant (nfs-pv).

Nous sommes maintenant prêts à utiliser le volume persistant basé sur nfs à l'intérieur des pods.

Utiliser un volume persistant basé sur NFS dans un pod

Créez un pod nginx en utilisant sous le fichier yaml, il montera la revendication de volume persistant sur '/usr/share/nginx/html'

[[email protected] ~]$ vi nfs-pv-podapiVersion :v1kind :Podmetadata :  nom :nginx-pv-podspec :  volumes :    - nom :nginx-pv-storage      persistentVolumeClaim :       claimName :nfs-pvc  containers :    - nom :nginx      image :nginx      ports :        - containerPort :80          nom :"nginx-server"      volumeMounts :        - mountPath :"/usr/share/nginx/html"          nom :nginx-pv-storage

Enregistrez et fermez le fichier.

Créez maintenant le pod en utilisant le fichier yaml ci-dessus, exécutez

[[email protected] ~]$ kubectl create -f nfs-pv-pod.yamlpod/nginx-pv-pod created[[email protected] ~]$[[email protected] ~]$ kubectl get pod nginx- PV-POD -O Widename Ready Status Restarts Age Node IP Node Node Node Gatesngginx-PV-POD 1/1 En fonctionnant 0 66S 172.16.140.28 K8S-LA LEWER-2   [[Email Protected] ~] $  

Remarque : Pour obtenir plus de détails sur le pod, kubectl describe pod

La sortie des commandes ci-dessus confirme que le pod a été créé avec succès. Essayez maintenant d'accéder à la page nginx à l'aide de la commande curl

[[email protected] ~]$ curl http://172.16.140.28Bonjour, NFS Storage NGINX[[email protected] ~]$

Parfait, la sortie de la commande curl ci-dessus confirme que le volume persistant est monté correctement à l'intérieur du pod car nous obtenons le contenu du fichier index.html qui est présent sur le partage NFS.

Ceci conclut l'article, je pense que vous avez une idée de base sur la façon de configurer et d'utiliser le volume persistant basé sur NFS dans les pods Kubernetes.

Lire aussi  :Comment configurer le cluster Kubernetes (k8s) en haute disponibilité avec Kubeadm

Lire aussi  :Comment installer et utiliser Helm dans Kubernetes


Linux
  1. Volumes Docker NFS :comment créer et utiliser

  2. Comment configurer NFS sur Debian 9 Stretch Linux

  3. Comment supprimer un service dans Kubernetes

  4. CentOS / RHEL :Comment créer une nouvelle partition swap basée sur LVM

  5. Comment configurer xhost pour qu'il soit persistant lors des redémarrages sous Linux

Comment installer et configurer le serveur NFS sur Debian 11

Comment installer et configurer Kubernetes sur Ubuntu

Comment configurer le client et le serveur NFS sous Linux

Comment installer et configurer un serveur NFS sur un système Linux

Comment créer un volume persistant pour vos déploiements de conteneurs avec Portainer

Comment installer et configurer un serveur Linux Ubuntu NFS