Accedi / Registrati Account

Container

Cos'è un cluster Kubernetes?

Un cluster Kubernetes è un insieme di sistemi nodo che serve a eseguire applicazioni containerizzate. Se stai eseguendo Kubernetes, stai eseguendo un cluster.

Un cluster contiene almeno un nodo di lavoro e un nodo master. Quest'ultimo si occupa di mantenere lo stato desiderato del cluster, decide ad esempio le applicazioni da eseguire e le immagini di container da queste utilizzate. I nodi di lavoro eseguono concretamente le applicazioni e i carichi di lavoro.

Il cluster è il fulcro di Kubernetes perché offre la possibilità di pianificare e di 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.

Come funziona un cluster Kubernetes?

Un cluster Kubernetes prevede uno stato desiderato che determina quali applicazioni o carichi di lavoro devono essere eseguiti, quali immagini utilizzano, quali risorse devono essere disponibili e altre informazioni di configurazione di questo tipo.

Lo stato desiderato viene definito da file di configurazione manifest, ovvero file JSON o YAML che 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 è in grado di verificare che sono in esecuzione solo due repliche, e di aggiungerne un'altra per ottenere lo stato previsto.

È 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.

Nodo master: la macchina che controlla i nodi Kubernetes. È il punto di origine di tutte le attività assegnate.

Nodi di lavoro: le macchine che eseguono le attività assegnate richieste. Sono controllate dal nodo master Kubernetes.

Pod: un 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.

Perché scegliere Red Hat OpenShift per 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à.

Scopri Red Hat OpenShift