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

Basandosi su OpenShift, puoi utilizzare insieme Red Hat Advanced Cluster Management e Red Hat Ansible® Automation Platform per distribuire e gestire in modo efficiente più cluster Kubernetes in diverse regioni e in ambienti diversi: cloud pubblici, on-premise ed edge.

Scopri come creare e automatizzare ambienti ibridi con Red Hat

 

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