Cos'è un pod Kubernetes?

Copia URL

Un pod Kubernetes è una raccolta di uno o più container Linux®, nonché la più piccola unità di un'applicazione Kubernetes. Ciascun pod può includere più container ad alto accoppiamento (scenario di utilizzo avanzato) o un singolo container (scenario di utilizzo più comune). I container vengono raggruppati in pod Kubernetes per aumentare l'intelligenza di condivisione delle risorse, come descritto di seguito.

All'interno del sistema Kubernetes, i container nello stesso pod condivideranno le stesse risorse di calcolo. Queste risorse di calcolo sono raggruppate in Kubernetes per formare cluster, in grado di fornire un sistema più potente e distribuito in modo intelligente per l'esecuzione di applicazioni. Inizialmente la distinzione fra i vari componenti di Kubernetes (container, pod, nodi e cluster) può sembrare confusa, ma per comprendere appieno i vantaggi dei pod Kubernetes è sufficiente aver chiara la suddivisione seguente:

Gli elementi alla base di Kubernetes

 

Unità hardware

Nodo: la più piccola unità hardware di calcolo in Kubernetes (immaginabile facilmente come un singolo computer).

Cluster: un insieme di nodi raggruppati insieme per fornire operazioni di condivisione e bilanciamento intelligenti delle risorse.

Unità software

Container Linux: il set di uno o più processi, che include tutti i file necessari per la relativa esecuzione, rendendoli portatili tra computer.

Pod Kubernetes: la raccolta di uno o più container Linux, raggruppati in pacchetti per ottimizzare i vantaggi della condivisione delle risorse tramite la gestione cluster.

 

In sostanza, il singolo hardware viene rappresentato in Kubernetes come un nodo. Più nodi vengono raccolti in cluster, consentendo di distribuire la capacità di elaborazione in base alle esigenze. I pod vengono eseguiti in questi cluster, il che garantisce che al loro interno tutti i container ad alto accoppiamento vengano eseguiti insieme sullo stesso cluster.

La relazione tra pod e cluster è il motivo per cui Kubernetes non gestisce i container direttamente, mentre esegue i pod per garantire che ciascun container al loro interno condivida le stesse risorse e la stessa rete locale. Tale raggruppamento consente ai container di comunicare reciprocamente come se condividessero lo stesso hardware fisico, pur rimanendo in qualche modo isolati.

Questa organizzazione di container in pod è alla base di una delle funzionalità ben note di Kubernetes: la replica. Quando i container vengono organizzati in pod, Kubernetes può utilizzare controller di replica per ridimensionare orizzontalmente un'applicazione in base alle esigenze. Di fatto, ciò significa che se un singolo pod si sovraccarica, Kubernetes è in grado di replicarlo e distribuirlo automaticamente nel cluster. Oltre a supportare un funzionamento corretto durante i periodi di carico eccessivo, i pod Kubernetes spesso vengono replicati in modo continuo per offrire resistenza agli errori di sistema.

Risorse da Red Hat

L'ottimizzazione degli elementi riutilizzabili, ad esempio i pod, è un vantaggio fondamentale del sistema Kubernetes. Potrebbe volerci molto tempo per scoprire i migliori usi di Kubernetes negli ambienti di produzione, ma con i ritmi di deployment serrati delle applicazioni cloud native di oggigiorno, la maggior parte delle aziende non può permettersi di sperimentare.

Tuttavia, poiché Kubernetes è creato sulla base di standard open, sono emersi modelli di successo (e di fallimento) mediante i test e gli errori dei primi utenti utilizzatori. I modelli Kubernetes offrono design replicabili che molte organizzazioni possono utilizzare per accelerare la propria implementazione.

Presentato dagli autori Bilgin Ibryam e Roland Huß e fornito attraverso O'Reilly: Kubernetes patterns: Reusable elements for designing cloud-native applications offre una presentazione dettagliata di elementi, modelli, principi e procedure comuni riutilizzabili per la progettazione e l'implementazione di applicazioni cloud native su Kubernetes.

Leggi di più sui modelli Kubernetes

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Microservices: i vantaggi di Red Hat OpenShift Serverless

Red Hat OpenShift Serverless estende Kubernetes per l'implementazione e la gestione di carichi di lavoro per il serverless computing.

Virtualizzazione: Container Linux e VM

Container e macchine virtuali consentono di isolare alcuni componenti IT per facilitarne l'utilizzo e la gestione. Scopri le differenze tra container e vm.

Cos'è il Kubernetes Java Client?

Il Kubernetes Java Client è una libreria client che permette di utilizzare il linguaggio di programmazione Java per interfacciarsi con Kubernetes.

Container: risorse consigliate

Articoli correlati