Accedi / Registrati Account
Jump to section

Cos'è un cluster Kubernetes?

Copia URL

Un cluster Kubernetes è un gruppo di sistemi nodo che serve a eseguire applicazioni containerizzate Se utilizzi Kubernetes, stai utilizzando un cluster.

Un cluster contiene, come minimo, un piano di controllo e uno o più sistemi di elaborazione, o nodi. Il piano di controllo mantiene lo stato desiderato del cluster, decidendo ad esempio le applicazioni da eseguire e le immagini container utilizzate da queste ultime. I nodi eseguono concretamente le applicazioni e i carichi di lavoro.

Il cluster è l'elemento centrale di Kubernetes, perché offre la possibilità di pianificare ed eseguire i container in un gruppo di macchine di qualsiasi tipo: fisiche o virtuali, on premise o nel cloud. I container Kubernetes non sono vincolati alle singole macchine, ma sono invece astratti nel cluster.

Un cluster Kubernetes è caratterizzato da uno stato desiderato, che determina le applicazioni o i carichi di lavoro da eseguire, le immagini che utilizzano, le risorse a cui devono avere accesso e altre informazioni di configurazione di questo tipo.

Lo stato desiderato viene definito da file di configurazione manifest, ovvero file JSON o YAMLche dichiarano il tipo di applicazione da eseguire e il numero di repliche necessarie per eseguire un sistema preservandone l'integrità.

Lo stato desiderato del cluster viene definito tramite l'API Kubernetes, dalla riga di comando (utilizzando kubectl) o usando l'API per interagire con il cluster e definendone o modificandone le impostazioni.

Kubernetes gestirà automaticamente il cluster in modo che il suo stato corrisponda a quello desiderato. A titolo esemplificativo, immagina di dover distribuire un'applicazione con lo stato desiderato di “3”, ovvero devono essere eseguite tre repliche dell'applicazione. In caso di arresto di uno di questi container, Kubernetes rileva che sono in esecuzione solo due repliche, e ne aggiunge un'altra per ottenere lo stato desiderato.

È possibile utilizzare i modelli Kubernetes per gestire la scalabilità del cluster in modo automatico, in base al carico. 

Come interagiscono tra loro cluster, nodo, pod e gli altri componenti di Kubernetes?

Abbiamo definito un cluster come un insieme di nodi. Approfondiamo gli altri componenti di Kubernetes per comprendere meglio il concetto di cluster.

Piano di controllo: raccolta di processi che controllano i nodi Kubernetes. È il punto di origine di tutte le attività assegnate.

Nodi: macchine che eseguono le attività richieste assegnate dal piano di controllo.

Pod: gruppo di uno o più container distribuiti su un singolo nodo. Il pod è l'oggetto Kubernetes più piccolo e semplice.

Servizio: un modo per esporre un'applicazione eseguita in un set di pod come servizio di rete. Consente di disaccoppiare le definizioni del lavoro dai pod.

Volume: una directory che contiene i dati ed è accessibile ai container presenti in un pod. Un volume Kubernetes ha la stessa durata di vita del pod che lo contiene, ma supera la durata di qualsiasi container eseguito nel pod; i dati vengono conservati quando il container viene riavviato.

Spazio dei nomi: un cluster virtuale. Gli spazi dei nomi consentono a Kubernetes di gestire più cluster (per più team o progetti) dallo stesso cluster fisico.

Le moderne applicazioni cloud native implicano una distribuzione superiore degli ambienti Kubernetes, il cui deployment può avvenire su più datacenter on premise, nel cloud pubblico e all'edge.

Le organizzazioni che desiderano adottare Kubernetes su vasta scala o in produzione devono gestire vari cluster distribuiti fra ambienti diversi, ad esempio per lo sviluppo, il test e la produzione, e devono riuscire a gestirli in modo efficiente.

Per gestione dei cluster Kubernetes si intendono le procedure utilizzate da un team IT per gestire un gruppo di cluster Kubernetes. 

Red Hat guida e contribuisce attivamente allo sviluppo delle tecnologie open source per container tra cui Kubernetes. Ha realizzato strumenti strategici per proteggere, semplificare e aggiornare in modo automatico l'infrastruttura dei container. 

Red Hat® OpenShift® è una distribuzione Kubernetes di livello enterprise, che mette a disposizione un'unica piattaforma integrata per i team operativi e di sviluppo. Red Hat OpenShift consente agli sviluppatori di scegliere i linguaggi, i framework, il middleware e i database che preferiscono, creando e distribuendo l'automazione tramite i flussi CI/CD, per potenziare la produttività.

Gli strumenti necessari per lavorare con Kubernetes

Permette di controllare cluster e applicazioni Kubernetes da una singola console dotata di criteri di sicurezza integrati. 

Red Hat OpenShift product logo

Sviluppa, distribuisci e gestisci i tuoi container in qualsiasi ambiente e su qualunque scala.

Scopri Red Hat OpenShift