Jump to section

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:

container orchestration illustration

Scopri come un'orchestrazione open source basata su container consente di automatizzare i processi manuali necessari per il deployment, la gestione e la scalabilità delle app containerizzate.

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.

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.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è l'orchestrazione dei container?

Definiamo orchestrazione dei container l'automazione dei processi di deployment, gestione, scalabilità e networking dei container.

ARTICOLO

Cos'è un container Linux?

Un container Linux è un insieme di processi, isolati dal resto del sistema, che esegue un'immagine distinta contenente tutti i file necessari per supportare tali processi.

Scopri di più sui container

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Risorse

Checklist

10 considerazioni sui deployment Kubernetes

Checklist

Sei considerazioni per scegliere la piattaforma Kubernetes giusta

Serie Open Answers: Cos'è Red Hat OpenShift?

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures