Cos'è un cluster Kubernetes?

Copia URL
  • Un cluster Kubernetes è un gruppo di sistemi nodo che serve a eseguire applicazioni containerizzate. 
  • La condizione target di un cluster Kubernetes ne definisce i carichi di lavoro, le immagini, le risorse e le configurazioni.
  • Un cluster Kubernetes è costituito da un piano di controllo che gestisce i nodi che eseguono attività tramite pod, supportati da servizi per la rete, volumi per lo storage permanente dei dati e spazi dei nomi per l'isolamento virtuale.
  • Per gestione dei cluster Kubernetes si intendono le procedure utilizzate da un team IT per gestire un gruppo di cluster Kubernetes.
  • I prodotti Red Hat come OpenShift, Advanced Cluster Management e Ansible Automation Platform gestiscono in modo efficiente i deployment multicluster nel cloud, on premise e all'edge.

Cos'è un cluster Kubernetes?

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 la condizione target del cluster, decidendo ad esempio le applicazioni da eseguire e le immagini dei 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.

Scopri i vantaggi di Kubernetes in ambiente enterprisePagina disponibile in Inglese (Italiano non disponibile)

La condizione target di un cluster Kubernetes è il modello di riferimento che definisce l'aspetto e l'esecuzione delle applicazioni e dell'infrastruttura in un dato momento.

Anziché fornire al cluster istruzioni dettagliate (approccio imperativo), dichiari il risultato finale da ottenere (approccio dichiarativo) in un file YAML o JSON, e Kubernetes lavora costantemente per mantenerlo.

In genere, questo modello specifica:

  • Carichi di lavoro: quali applicazioni, microservizi o processi batch da eseguire.
  • Scalabilità: il numero esatto di copie (repliche) di ciascun container che devono esistere.
  • Risorse: quanta CPU e memoria sono allocate per ogni applicazione.
  • Rete e sicurezza: quali porte sono aperte, come viene instradato il traffico e chi può accedere.
  • Resilienza: cosa fare in caso di arresto anomalo di un container o di un nodo hardware.

La condizione target di un cluster Kubernetes determina le applicazioni o gli altri carichi di lavoro da eseguire, le immagini che utilizzano, le risorse a cui devono avere accesso e altre informazioni di configurazione analoghe.

La condizione target viene definita tramite 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à.

La condizione target del cluster viene definita tramite l'API Kubernetes, dalla riga di comando (utilizzando kubectl) o usando l'API per interagire con il cluster per impostarla o modificarla.

Kubernetes gestirà automaticamente il cluster, in modo da ottenere la condizione target. A titolo esemplificativo, immagina di dover distribuire un'applicazione con la condizione target 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 la condizione target.

È anche 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: 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: 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: cluster virtuale. Gli spazi dei nomi consentono a Kubernetes di gestire più cluster (per più team o progetti) dallo stesso cluster fisico.

Scopri sette clienti che innovano con le tecnologie Red Hat

Per gestione dei cluster Kubernetes si intendono le procedure utilizzate da un team IT per gestire un gruppo di cluster 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 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.

Scopri di più sull'utilizzo dei cluster Kubernetes

Quali sono i vantaggi della gestione dei cluster Kubernetes?

La gestione efficace di un cluster Kubernetes può trasformare il modo in cui le organizzazioni distribuiscono il software, automatizzando il deployment, la scalabilità e le operazioni delle applicazioni containerizzate.

I vantaggi principali includono:

  • Scalabilità ottimizzata: immediata scalabilità delle applicazioni in base alla domanda. Il cluster adatta automaticamente i carichi di lavoro per gestire i picchi di traffico o risparmiare sui costi durante le ore di minor utilizzo.
  • Resilienza avanzata: Kubernetes monitora costantemente l'integrità dei container e dei nodi per mantenere un'alta disponibilità. In caso di arresto anomalo di un container o di un guasto hardware, Kubernetes lo riavvia o lo sostituisce automaticamente, evitando tempi di fermo.
  • Efficienza delle risorse: Kubernetes valuta i requisiti di CPU e memoria dei carichi di lavoro e li adatta ai nodi per massimizzare l'utilizzo dell'infrastruttura e ridurre al minimo gli sprechi.
  • Supporto per DevOps e CI/CD: la natura dichiarativa di Kubernetes consente di trattare l'infrastruttura come codice, integrandola perfettamente nelle pipeline CI/CD per automatizzare test, deployment e rollout, favorendo una collaborazione più veloce e agile tra i team DevOps.

Red Hat è leader nello sviluppo di tecnologie open source per container, tra cui Kubernetes; realizza inoltre strumenti strategici per proteggere, semplificare e aggiornare in modo automatico l'infrastruttura dei container. 

Red Hat® OpenShift® è una piattaforma unificata che consente di realizzare, modernizzare e distribuire le applicazioni, rendendole scalabili. Red Hat OpenShift mette a disposizione un'unica piattaforma integrata per i team operativi e di sviluppo. I flussi di lavoro pensati per gli sviluppatori, comprensivi di funzionalità source to image e pipeline CI/CD integrate, consentono di passare rapidamente dal codice applicativo al container. Basato su Kubernetes, Red Hat OpenShift ti aiuta a lavorare in modo più intelligente e veloce con un set completo di servizi per portare le app sul mercato con l'infrastruttura che preferisci. 

Puoi utilizzare insieme OpenShift, Red Hat Advanced Cluster Management e Red Hat Ansible® Automation Platform per adottare e gestire in modo efficiente più cluster Kubernetes in più aree geografiche e ambienti, tra cui cloud pubblici, on premise e posizioni all'edge.

Scopri come creare e automatizzare ambienti ibridi con Red Hat

 

Versione di prova del prodotto Red Hat Advanced Cluster Management for Kubernetes

Visibilità e controllo end to end per i cluster Kubernetes.

Continua a leggere

Cos'è l'orchestrazione dei container?

L'orchestrazione dei container è il processo che permette di automatizzare il deployment, la gestione, la scalabilità e il networking dei container.

Cos'è un operatore Kubernetes?

Un operatore Kubernetes è un metodo che consente di creare il pacchetto di un'applicazione Kubernetes, eseguire il deployment dell'applicazione e gestirla estendendo la funzionalità dell'API Kubernetes.

Cos'è Kubernetes?

Kubernetes è una piattaforma di orchestrazione dei container che consente di eliminare molti processi manuali necessari per il deployment e la scalabilità delle applicazioni containerizzate.

Container: risorse consigliate

Articoli correlati