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