GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il volume persistente basato su NFS in Kubernetes

Si consiglia di inserire i dati del pod in un volume persistente in modo che i dati siano disponibili anche dopo la chiusura del pod. In Kubernetes (k8s), i volumi persistenti basati su NFS possono essere utilizzati all'interno dei pod. In questo articolo impareremo come configurare il volume persistente e l'attestazione del volume persistente e quindi discuteremo come utilizzare il volume persistente tramite il suo nome di attestazione nei pod k8s.

Presumo che abbiamo un cluster k8s funzionale e un server NFS. Di seguito sono riportati i dettagli per la configurazione del laboratorio,

  • IP del server NFS =192.168.1.40
  • Condivisione NFS =/opt/k8s-pods/data
  • K8s Cluster =un master e due nodi di lavoro

Nota: Assicurati che il server NFS sia raggiungibile dai nodi di lavoro e prova a montare la condivisione nfs su ogni lavoratore una volta per il test.

Crea un file all'interno della condivisione nfs perché monteremo questa condivisione nel pod nginx più avanti nell'articolo.

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

Configura PV (Volume persistente) basato su NFS

Per creare un volume persistente basato su NFS in K8s, crea il file yaml sul nodo master con i seguenti contenuti,

[[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:    percorso:/opt/k8s-pods/data    server:192.168.1.40

Salva ed esci dal file

Ora crea un volume persistente usando il file yaml creato sopra, esegui

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

Esegui il seguente comando kubectl per verificare lo stato del volume persistente

;

L'output sopra conferma che il PV è stato creato correttamente ed è disponibile.

Configura richiesta volume persistente

Per montare un volume persistente all'interno di un pod, dobbiamo specificare la sua richiesta di volume persistente. Quindi, creiamo un'attestazione di volume persistente utilizzando il seguente file yaml

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

Salva ed esci dal file.

Esegui il comando kubectl sottostante per creare pvc utilizzando il file yaml sopra,

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

Dopo l'esecuzione sopra, il piano di controllo cercherà il volume persistente che soddisfa i requisiti di attestazione con lo stesso nome della classe di archiviazione e quindi collegherà l'attestazione al volume persistente, l'esempio è mostrato di seguito:

; kubectl get pv nfs-pvname di accesso capacità di accesso reclami status clumine sterageclass motivo agenfs-pv 10gi rwx ricycle limite default/nfs-pvc nfs 18m [[e-mail protetto] ~] $

L'output sopra conferma che il claim (nfs-pvc) è legato al volume persistente (nfs-pv).

Ora siamo pronti per usare il volume persistente basato su nfs all'interno dei pod.

Utilizza volume persistente basato su NFS all'interno di un pod

Crea un pod nginx usando il file yaml sotto, monterà la richiesta di volume persistente su '/usr/share/nginx/html'

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

Salva e chiudi il file.

Ora crea il pod usando il file yaml sopra, esegui

[[email protected] ~]$ kubectl create -f nfs-pv-pod.yamlpod/nginx-pv-pod create[[email protected] ~]$[[email protected] ~]$ kubectl get pod nginx- PV-POD -O Widename Ready Stato Riavvia del nodo IP Nominato Prontipazione del nodo nominato Gatesnginx-PV-POD 1/1 in esecuzione 0 66s 172.16.140.28 K8S-Worker-2   [[E-mail Protected] ~] $  

Nota: Per ottenere maggiori dettagli sul pod, kubectl descrive il pod

L'output dei comandi sopra riportato conferma che il pod è stato creato correttamente. Ora prova ad accedere alla pagina nginx usando il comando curl

[[email protetta] ~]$ curl http://172.16.140.28Ciao, NFS Storage NGINX[[email protetta] ~]$

Perfetto, sopra l'output del comando curl conferma che il volume persistente è montato correttamente all'interno del pod mentre stiamo ottenendo il contenuto del file index.html che è presente sulla condivisione NFS.

Questo conclude l'articolo, credo che voi ragazzi abbiate un'idea di base su come configurare e utilizzare il volume persistente basato su NFS all'interno dei pod Kubernetes.

Leggi anche :Come configurare il cluster Kubernetes(k8s) in HA con Kubeadm

Leggi anche :Come installare e utilizzare Helm in Kubernetes


Linux
  1. Volumi Docker NFS:come creare e utilizzare

  2. Come configurare NFS su Debian 9 Stretch Linux

  3. Come eliminare un servizio in Kubernetes

  4. CentOS / RHEL:come creare una nuova partizione di swap basata su LVM

  5. Come configurare xhost in modo che sia persistente tra i riavvii in Linux

Come installare e configurare il server NFS su Debian 11

Come installare e configurare Kubernetes su Ubuntu

Come configurare client e server NFS su Linux

Come installare e configurare un server NFS su un sistema Linux

Come creare un volume persistente per le distribuzioni di container con Portainer

Come installare e configurare un server NFS Ubuntu Linux