GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie ein NFS-basiertes persistentes Volume in Kubernetes

Es wird empfohlen, die Daten des Pods in einem persistenten Volume zu platzieren, damit die Daten auch nach Beendigung des Pods verfügbar sind. In Kubernetes (k8s) können NFS-basierte persistente Volumes innerhalb der Pods verwendet werden. In diesem Artikel werden wir lernen, wie man persistentes Volume und persistente Volume-Beanspruchung konfiguriert und dann diskutieren, wie wir das persistente Volume über seinen Claim-Namen in k8s-Pods verwenden können.

Ich gehe davon aus, dass wir einen funktionsfähigen k8s-Cluster und NFS-Server haben. Im Folgenden finden Sie Details zur Laboreinrichtung,

  • NFS-Server-IP =192.168.1.40
  • NFS-Freigabe =/opt/k8s-pods/data
  • K8s-Cluster =Ein Master- und zwei Worker-Knoten

Hinweis: Stellen Sie sicher, dass der NFS-Server von den Worker-Knoten aus erreichbar ist, und versuchen Sie einmal, die NFS-Freigabe auf jedem Worker zu Testzwecken einzuhängen.

Erstellen Sie eine -Datei innerhalb der nfs-Freigabe, da wir diese Freigabe später im Artikel im nginx-Pod bereitstellen werden.

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

Konfigurieren Sie NFS-basiertes PV (Persistent Volume)

Um ein NFS-basiertes persistentes Volume in K8s zu erstellen, erstellen Sie die yaml-Datei auf dem Master-Knoten mit folgendem Inhalt:

[[email protected] ~]$ vim nfs-pv.yamlapiVersion:v1kind:PersistentVolumemetadata:  name:nfs-pvspec:  capacity:    storage:10Gi  volumeMode:Filesystem  accessModes:    - ReadWriteMany  persistentVolumeReclaimPolicy:Recycle  storageClassName:nfs mountOptions:    - hard - nfsvers=4.1  nfs:    Pfad:/opt/k8s-pods/data    Server:192.168.1.40

Speichern und beenden Sie die Datei

Erstellen Sie nun ein persistentes Volume mit der oben erstellten Yaml-Datei und führen Sie es aus

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

Führen Sie den folgenden kubectl-Befehl aus, um den Status des persistenten Volumes zu überprüfen

 [[E-Mail geschützt] ~] $ kubectl erhalten PVName-Kapazitätszugriffsmodi Reclaim Richtlinienstatus Antrag StorageClass Grund AGENFS-PV 10GI RWX Recycle verfügbar NFS 20S [[E-Mail-Protected] ~] $ 

Die obige Ausgabe bestätigt, dass PV erfolgreich erstellt wurde und verfügbar ist.

Persistent Volume Claim konfigurieren

Um ein persistentes Volume in einem Pod bereitzustellen, müssen wir seinen Anspruch auf ein persistentes Volume angeben. Lassen Sie uns also mithilfe der folgenden Yaml-Datei einen Anspruch auf ein dauerhaftes Volume erstellen

[[email protected] ~]$ vi nfs-pvc.yamlapiVersion:v1kind:PersistentVolumeClaimmetadata:  name:nfs-pvcspec:  storageClassName:nfs  accessModes:    - ReadWriteMany  resources:    requests:      storage:10Gi

Datei speichern und beenden.

Führen Sie den folgenden kubectl-Befehl aus, um pvc mit der obigen yaml-Datei zu erstellen,

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

Nach der obigen Ausführung sucht die Steuerungsebene nach einem persistenten Volume, das die Anspruchsanforderung mit demselben Speicherklassennamen erfüllt, und bindet dann den Anspruch an ein persistentes Volume, das Beispiel ist unten gezeigt:

 [[E-Mail geschützt] ~] $ kubectl erhalten PVC NFS-PVCNAME STATUS-VORTELUNG CAPAPITY CAPAPITY CAPAPITY CAPAPITY STORAGECLASS AGENFS-PVC BOND NFS-PV 10GI RWX NFS 3M54S [[E-Mail Protected] ~] $ [[E-Mail-Protected] ~] ~ $] $ kubectl GET PV NFS-PVNAME-Kapazitätszugriffsmodi Rückgewinnung von Richtlinienstatusansprüchen StorageClass Gründe AGENFS-PV 10GI RWX Recycle Banden Standard-Standard/NFS-PVC NFS 18M [[E-Mail geschützt] ~] $ 

Die obige Ausgabe bestätigt, dass der Claim (nfs-pvc) an das persistente Volume (nfs-pv) gebunden ist.

Jetzt sind wir bereit, nfs-basierte persistente Volumes neben den Pods zu verwenden.

NFS-basiertes Persistent Volume in einem Pod verwenden

Erstellen Sie einen nginx-Pod mit der folgenden yaml-Datei. Er stellt den persistenten Volume-Claim auf „/usr/share/nginx/html“

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

Speichern und schließen Sie die Datei.

Erstellen Sie nun den Pod mit der obigen Yaml-Datei und führen Sie ihn aus

[[email protected] ~]$ kubectl create -f nfs-pv-pod.yamlpod/nginx-pv-pod created[[email protected] ~]$[[email protected] ~]$ kubectl get pod nginx- PV-POD -O-Widenname Ready Status Neustarts Alter IP-Knoten Nominierte Knotenbereitschaft Gatesnginx-PV-Pod 1/1 Ausführen 0 66S 172.16.140.28 K8S-Arbeiter-2   [[E-Mail-Protected] ~ $  

Hinweis: Um weitere Details zum Pod zu erhalten, beschreiben Sie kubectl den Pod

Die obige Befehlsausgabe bestätigt, dass der Pod erfolgreich erstellt wurde. Versuchen Sie nun, mit dem curl-Befehl

auf die nginx-Seite zuzugreifen
[[email protected] ~]$ curl http://172.16.140.28Hallo, NFS Storage NGINX[[email protected] ~]$

Perfekt, die obige Ausgabe des curl-Befehls bestätigt, dass das persistente Volume korrekt im Pod gemountet ist, da wir den Inhalt der index.html-Datei erhalten, die auf der NFS-Freigabe vorhanden ist.

Damit ist der Artikel abgeschlossen. Ich glaube, Sie haben eine grundlegende Vorstellung davon, wie Sie ein NFS-basiertes persistentes Volume in Kubernetes-Pods konfigurieren und verwenden.

Auch lesen :So richten Sie Kubernetes(k8s)-Cluster in HA mit Kubeadm ein

Auch lesen :Installieren und Verwenden von Helm in Kubernetes


Linux
  1. NFS-Docker-Volumes:Erstellen und Verwenden

  2. So konfigurieren Sie NFS unter Debian 9 Stretch Linux

  3. So löschen Sie einen Dienst in Kubernetes

  4. CentOS / RHEL :So erstellen Sie eine neue LVM-basierte Swap-Partition

  5. So konfigurieren Sie xhost so, dass es über Neustarts in Linux hinweg bestehen bleibt

So installieren und konfigurieren Sie den NFS-Server unter Debian 11

So installieren und konfigurieren Sie Kubernetes unter Ubuntu

So konfigurieren Sie NFS-Client und -Server unter Linux

So installieren und konfigurieren Sie einen NFS-Server auf einem Linux-System

So erstellen Sie mit Portainer ein persistentes Volume für Ihre Containerbereitstellungen

So installieren und konfigurieren Sie einen Linux Ubuntu NFS-Server