Volumi HostPath di Kubernetes

Volumi HostPath di Kubernetes

Un volume del percorso host punta a un particolare socket o directory del file system sul nodo. In Kubernetes, ci sono vari tipi di volume. Poiché vengono cancellati i volumi di Gitrepo e vuoto, il volume del percorso host è vantaggioso nelle applicazioni Kubernetes perché conserva il contenuto dei volumi. Il volume di HostPath e il tipo di volumi di Kubernetes sono discussi in questo articolo. Imparerai come lanciare il minikube e creare un manifest di file yaml in questo articolo. Sarai quindi guidato passo per passo attraverso la configurazione del volume Hostpath e la creazione del volume del pod.

Quali sono i volumi di Kubernetes?

I contenitori in un pod Kubernetes possono accedere a una directory di dati chiamata volume Kubernetes. A seconda del particolare tipo di volume utilizzato, della posizione della directory, del mezzo di archiviazione che lo supporta e i suoi contenuti variano.

I processi all'interno di un baccello di contenitori vedono una vista file system composta da quanto segue:

    • Un sistema di file di root identico al contenuto dell'immagine del contenitore.
    • Contenitori che sono montati con volumi (se definiti). All'interno del file system del contenitore, ogni volume si monta su un percorso distinto.

IL .spec.contenitori [*].VolumeMounts definisce i volumi. Per ogni immagine del contenitore contenuto all'interno del pod, è necessario fornire i volumi e i percorsi di montaggio per ciascun pod.

In Kubernetes, ci sono vari tipi di volume come:

    • Volumi persistenti
    • Volumi vuoti
    • Volumi effimeri
    • Kubernetes Volumes configmap
    • Volumi HostPath di Kubernetes

Quali sono i volumi di hostpath di Kubernetes?

In Kubernetes, il percorso host significa montare le risorse come file, prese o directory dall'host o dal nodo all'interno del pod. Il percorso host può specificare cose come la directory che dovrebbero già essere esistenti o dovrebbero essere create alla creazione di pod.

Come visto nella figura seguente, un volume del percorso host indica le risorse sul file system del nodo. Gli stessi file sono visibili a tutti i pod che utilizzano lo stesso volume Hostpath e funzionano sullo stesso nodo.


Figura 1: I file o le directory di un nodo lavoratore sono montati nel file system del contenitore da un volume di percorso host.

Quando un pod viene distrutto, il contenuto dei volumi di Gitrepo e EmptyDir viene cancellato, ma non il contenuto del volume del percorso host. Il seguente pod è in grado di visualizzare tutti i file che il pod cancellato ha lasciato indietro se è assegnato allo stesso nodo di quello precedente e utilizza un volume del percorso host che si riferisce allo stesso percorso sull'host.

I seguenti sono importanti casi di utilizzo del volume del percorso host. Sebbene la maggior parte dei pod non lo richieda, fornisce un forte portello di fuga in alcune situazioni:

    • Utilizzo del pod per distribuire alcuni file specifici per nodi.
    • Esecuzione di un contenitore che necessita di accesso agli interni Docker usando il seguente comando:
>/var/lib/DockerhostPath
    • Esecuzione del cadvisor in un contenitore usando il seguente comando:
> /sys hostpath
    • Consentendo a un pod di specificare un percorso host per dichiarare se un particolare percorso host deve esistere o essere stabilito prima che il pod funzioni.
    • Scegliere un tipo per il volume HostPath; Questo può essere configurato in aggiunta all'attributo del percorso richiesto.

Come configurare e creare un percorso host

Cominciamo a imparare come configurare il percorso host e crearlo.

Passaggio 1: avviare il server minikube

Nel primo passaggio, avvia il server minikube in modo da poter utilizzare i comandi Kubectl ed eseguire l'applicazione. Il minikube ti consente di distribuire i tuoi nodi e pod nell'ambiente Kubernetes. Il comando seguente deve essere utilizzato per mantenere il minikube in modalità attiva:

> Minikube Start


Questo attiva il minikube e rende l'ambiente Kubernetes pronto per l'uso.


Passaggio 2: crea un file yaml kubernetes

Imparerai come creare un file manifest YAML per Kubernetes in questo passaggio. Test dell'applicazione e distribuzione su Kubernetes richiedono i file YAML.

Quando si utilizza Kubernetes, un'azione tipica è la tendenza a cercare i file YAML di Kubernetes ogni volta che intendiamo distribuire un pod di test.

Quando si utilizza Kubernetes, ci sono diversi modi per generare e modificare i file. Questo articolo spiega come utilizzare il comando nano per creare un file yaml perché è la scelta migliore per i principianti.

Segui questi passaggi per creare un file YAML usando Nano:

    • Avvia il minikube.
    • Per creare un nuovo file o modificarne uno esistente, vai nella posizione della directory desiderata.
    • Il nome del file dovrebbe essere seguito da nano. Ad esempio, si desidera creare un nuovo file chiamato host.Yaml.

Esegui il comando seguente per costruire un host file YAML nella directory del progetto:

> $ nano host.Yaml


Il file viene creato dopo l'esecuzione del comando. Il prossimo passo è lavorare sull'host appena aperto.file yaml.

Passaggio 3: configurare il volumemount hostpath

Per creare un volume e renderlo disponibile per un pod, segui questi due passaggi:

    • Specificarlo nella specifica: elemento volumi del modello POD prima di distribuire il pod su alcuni nodi.
    • Montare il volume usando le specifiche: contenitori: nome>: comando volume in una particolare proprietà contenitore.

Queste azioni sono correlate. È necessario montare un volume su un contenitore quando lo crei. Non è possibile montare un volume senza definirlo prima nella configurazione del pod. Viene fornito un campione di creazione e montaggio di un volume in una configurazione del modello di baccello YAML:

> Spec:
Contenitori:
-Nome: app-one
Immagine: nginx-one
VolumeMounts:
-Nome: Volume-One
MountPath: /app /config
Volumi:
-Nome: Volume-One



Nel codice fornito, possiamo osservare che:

    • Il volume di prova nominato è creato nella specifica.volumi dal comando volume ed è allegato al pod.
    • Trova il percorso host nella sezione Spec pod. Il percorso/dati particolare viene creato perché il tipo: DirectoryorCreate significa che il percorso dovrebbe essere creato se non è presente.
    • I dati sono sul nodo in cui il pod è invio ed è montato all'interno del contenitore nella directory /test-pd.
    • La dichiarazione del volume e la proprietà VolumeMounts richiedono entrambi lo stesso nome di volume da utilizzare.

Passaggio 4: crea il pod del volume Hostpath

In questo passaggio, usiamo l'host.YAML) File YAML per creare un volume del percorso host come mostrato nel seguente:

> $ kubectl Crea host -f.Yaml


Come visto nello screenshot di cui sopra, il pod chiamato "test-PD" viene costruito con successo.

Conclusione

Questo articolo fornisce una panoramica generale di HostPath e dimostra come creare e configurare i supporti per il percorso host in pratica. Come parte della funzione di HostPath che impedisce la cancellazione dei dati del file system del nodo quando viene rimosso un pod, sebbene HostPath abbia molti vantaggi, ci sono anche diversi pericoli per la sicurezza. Evita di utilizzarlo ogni volta che puoi. Un volume del percorso host deve essere espulso solo alla directory o al file necessario e dovrebbe essere montato come lettura se è necessario usarne uno. In questo articolo, hai imparato come stabilire con successo un volume di pod passo per fase usando un esempio facile imparando anche come creare un percorso nel percorso host e montarlo nel contenitore.