Questo articolo coprirà la gestione di Kubernetes della memoria effimera e ti insegnerà come questi volumi sono creati in cluster attivi. Spiegheremo in dettaglio quali sono i volumi in Kubernetes e quali sono i suoi tipi di base. Forniremo anche una guida per l'utilizzo di volumi generici in Kubernetes.
Volumi in Kubernetes
Un volume in kubernetes può essere confrontato con una directory a cui i contenitori in un pod possono accedere. In Kubernetes, ci sono vari tipi di volume e ogni tipo specifica il contenuto del volume e il metodo di creazione. Con Docker, il concetto di volume era esistente, ma l'unico inconveniente era che il volume era gravemente vincolato a un singolo pod. Anche il volume è stato perso dopo che la vita di un pod era terminata. I volumi di Kubernetes, tuttavia, non sono vincolati a un particolare tipo di contenitore. Supporta uno o tutti i contenitori distribuiti del pod Kubernetes. La capacità del pod di utilizzare contemporaneamente diversi tipi di archiviazione è uno dei vantaggi principali del volume di Kubernetes. Kubernetes offre agli utenti una scelta tra due diversi tipi di volumi: persistente ed effimero. I volumi effimeri esistono solo per la durata di un baccello e vengono rimossi non appena il pod termina, in contrasto con i volumi persistenti, che mantengono i dati per tutto il ciclo di vita di un pod.
La gestione della memoria effimera da parte di Kubernetes
Alcuni POD Host Applicazioni richiedono l'archiviazione dei dati ma non richiedono i dati per persistere durante il riavvio del contenitore. Questi consistono in programmi che estraggono i dati di input di sola lettura da file, come la configurazione e le informazioni chiave segrete. Il volume associato ai pod di un servizio di cache spesso sposta i dati non importanti in archiviazione di memoria limitata senza influire sulle prestazioni. Pertanto, il volume deve solo sopportare la durata del pod.
Per soddisfare i requisiti di archiviazione di questi pod transitori, Kubernetes utilizza volumi effimeri. I pod possono iniziare e terminare senza essere vincolati dal posizionamento di un volume persistente grazie ai volumi effimeri. Su ciascun nodo in un cluster Kubernetes, esiste un'opzione per l'archiviazione effimera locale che è collegata alla RAM o ai dispositivi a livello locale.
Facciamo una migliore comprensione di questo argomento osservando come Kubernetes gestisce la gestione della memoria effimera.
Quali sono le diverse opzioni di archiviazione effimera?
L'archiviazione effimera è alloggiata su un volume non strutturato condiviso dal sistema operativo, tutti pod attivi sul nodo e il runtime del contenitore. Queste entità sono limitate dall'utilizzo della memoria locale del nodo eccessivamente dai volumi. Lo stoccaggio effimero è sempre ospitato sulla partizione principale dello stoccaggio locale. Questa divisione può essere fatta nei seguenti modi:
Radice
La directory di archiviazione root viene utilizzata dal sistema operativo, dai baccelli utente e dai demoni del sistema Kubernetes allo stesso tempo. /var/log/e la directory della radice kubelet, che per impostazione predefinita/var/lib/kubelet/, sono entrambi situati sul disco della radice. I pod possono utilizzare questa partizione utilizzando livelli di immagine contenitore, volumi vuoti e livelli scrivibili. Il servizio kubelet controlla l'isolamento e l'accesso condiviso alla partizione radice. La partizione di radice non fornisce durata, IOPs o altri parametri di prestazione perché è effimero.
Runtime
Container Runtimes Creare i file system di overlay mediante partizione di runtime. Runtime offre quindi un accesso condiviso una volta implementato la partizione con l'isolamento. I livelli di immagine e gli strati con il contenitore sono mantenuti su questa partizione. Questi livelli vengono automaticamente scritti sulla partizione di runtime quando è stata formata, non la partizione di root.
Volumi effimeri e i loro tipi in Kubernetes
A seconda dell'uso previsto, Kubernetes supporta una varietà di tipi di volume effimero. Questi consistono di:
Volumi effimeri generici
Qualsiasi driver di archiviazione che consente il provisioning dinamico di volumi persistenti può essere impiegato per generare questi volumi. Per i dati di avvio, che viene gettato via durante il provisioning, questi volumi offrono una directory a livello di pod. I volumi effimeri generici hanno le seguenti qualità:
Dir vuoto
Non appena un pod inizializza, questo volume viene generato e reso accessibile per qualunque lungo il pod non sia terminale.
Come usare volumi effimeri generici?
Ecco la guida passo-passo che puoi seguire per l'uso di volumi effimeri in Kubernetes.
Passaggio n. 1: avvia minikube
Utilizzando lo strumento minikube, è possibile eseguire kubernetes a livello locale. Ecco il comando:
> Minikube Start
Passaggio n. 2: abilita l'evidenziazione della sintassi per YAML
In questo passaggio, creeremo un file di configurazione con il seguente comando.
> nano epi.Yaml
Quello che segue è un esempio di ciò che la specifica YAML per un pod che è collegato a un volume effimero generico e ha 1 gib di memoria e numerose modalità di accesso
Passaggio n. 3: crea un pod
Qui, creeremo un pod. Questo viene fatto eseguendo il comando KuBectl Applica, che quindi crea e modifica le risorse in un cluster.
> kubectl applica -f epi.Yaml
Passaggio # 4: Visualizza i dettagli del pod
Ora troveremo e visualizzeremo i dettagli del pod utilizzando un comando menzionato di seguito:
> kubectl ottieni baccelli
Il comando viene eseguito correttamente e l'output è anche menzionato sopra in cui è possibile vedere i dettagli del pod.
Passaggio # 5: Monitoraggio dei volumi effimeri
Uno strumento di monitoraggio in grado di monitorare l'utilizzo di archiviazione sui volumi in cui i contenitori mantengono i loro dati possono essere impostati ed è possibile farlo. Questo volume si trova in/var/lib/docker o/var/lib/origin. Uno strumento di questo tipo che può essere utilizzato per esaminare il numero di risorse utilizzate in queste unità è l'utilità /bin /df. L'utilizzo e la capacità di archiviazione possono essere mostrati in forma leggibile dall'uomo dagli amministratori del cluster utilizzando lo strumento DF -h.
Il comando per il monitoraggio dei volumi effimeri è allegato di seguito:
> df -h/var/lib/
È possibile visualizzare l'output sopra in cui vengono visualizzate le informazioni del filesystem, dimensioni, usate, usate, usi%e montate.
Conclusione
Per le applicazioni Kubernetes che gestiscono i dati transitori, l'archiviazione effimera è un componente essenziale. Indipendentemente da dove si trova il volume persistente, Kubernetes fornisce volumi effimeri per consentire ai baccelli transitori di cessare e riavviare con grazia. Ogni nodo Kubernetes ha un'archiviazione effimera collegata localmente alla RAM o all'archiviazione scrittabile. I baccelli possono utilizzare questo spazio di archiviazione per la memorizzazione nella cache, la registrazione e lo spazio graffio. Questo articolo discute tutti questi in dettaglio.