Accedi / Registrati Account

Container

Cos'è e come funziona un cluster Kubernetes?

Jump to section

Un cluster Kubernetes è un insieme 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, e gestisce l'esecuzione delle applicazioni e delle immagini container da utilizzare. I nodi hanno la funzione di eseguire applicazioni e 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.

Come funziona un cluster Kubernetes?

Un cluster Kubernetes prevede uno stato desiderato che determina quali applicazioni o carichi di lavoro devono essere eseguiti, quali sono le immagini da utilizzare, 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 di 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.

Come vengono gestiti i cluster di Kubernetes?

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 sull'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. 

 

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

 

Cos'è Red Hat OpenShift?

Cos'è OpenShift? Scott McCarty (Red Hat) spiega le differenze tra Red Hat OpenShift Container Platform e Kubernetes.

Gli strumenti necessari per lavorare con Kubernetes

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

Red Hat OpenShift product logo

Sviluppa, distribuisci e gestisci i tuoi container in maniera scalabile in qualsiasi ambiente.

Scopri di più su Red Hat OpenShift