Cos'è Kubernetes?
Kubernetes, spesso abbreviato come "K8s", orchestra le applicazioni containerizzate per l'esecuzione su un cluster di host. Il sistema K8s automatizza il deployment e la gestione di applicazioni native per il cloud utilizzando un'infrastruttura on-premise o piattaforme di public cloud. Distribuisce i carichi di lavoro delle applicazioni su un cluster Kubernetes e automatizza le esigenze di networking dinamico dei container. Kubernetes alloca inoltre lo storage e i volumi persistenti ai container in esecuzione, fornisce scalabilità automatica e lavora su base continua per mantenere lo stato desiderato delle applicazioni, assicurando resilienza.
Scopri in che modo le aziende utilizzano Kubernetes per creare, distribuire ed eseguire applicazioni moderne secondo necessità.

Kubernetes in 5 minuti

Lo stato di Kubernetes 2022
Funzionalità di Kubernetes
Kubernetes offre molte funzionalità che aiutano a orchestrare i container su più host, automatizzare la gestione dei cluster K8s e ottimizzare l'impiego delle risorse attraverso un migliore utilizzo dell'infrastruttura. Tra le funzionalità più importanti:
- Scalabilità automatica. Scala automaticamente le applicazioni containerizzate e le relative risorse in base all'utilizzo.
- Gestione del ciclo di vita. Automatizza i deployment e gli aggiornamenti con la possibilità di:
- Rollback alle versioni precedenti.
- Pausa e ripresa di un deployment.
- Modello dichiarativo. Una volta indicato lo stato desiderato, K8s lavora in background per mantenere quello stato ed effettuare il ripristino dopo guasti.
- Resilienza e riparazione automatica. Posizionamento automatico, riavvio automatico, replica automatica e scalabilità automatica consentono la riparazione automatica delle applicazioni.
- Storage persistente. Monta e aggiungi storage in modo dinamico.
- Bilanciamento del carico. Kubernetes supporta una varietà di opzioni di bilanciamento del carico interno ed esterno per soddisfare esigenze diverse.
- Supporto DevSecOps. DevSecOps è un approccio avanzato alla sicurezza che semplifica e automatizza le operation dei container nei cloud, integra la sicurezza per tutto il ciclo di vita dei container e consente ai team di distribuire software sicuro e di alta qualità più rapidamente. La combinazione di pratiche DevSecOps e Kubernetes migliora la produttività degli sviluppatori.
Architettura e funzionamento di Kubernetes
I container incapsulano un'applicazione in un formato portabile e semplice da distribuire. L'architettura Kubernetes è progettata per eseguire applicazioni containerizzate. Un cluster Kubernetes è costituito da almeno un control plane e almeno un nodo worker (in genere un server fisico o virtuale). Il control plane ha due responsabilità principali. Rende disponibile l'API Kubernetes tramite il server API e gestisce i nodi che compongono il cluster. Il control plane prende decisioni sulla gestione del cluster, ne rileva gli eventi e fornisce una risposta.
L'unità di esecuzione più piccola per un'applicazione eseguita in Kubernetes è il pod Kubernetes, costituito da uno o più container. I pod Kubernetes vengono eseguiti sui nodi worker.
Terminologia aggiuntiva su Kubernetes
È importante conoscere i nomi e le funzioni dei componenti principali di K8s che fanno parte del control plane o che vengono eseguiti sui nodi Kubernetes.
Il control plane ha quattro componenti principali utilizzati per controllare le comunicazioni, gestire i nodi e tenere traccia dello stato di un cluster Kubernetes.
- Kube-apiserver. Come suggerisce il nome, kube-apiserver rende disponibile l'API Kubernetes.
- etcd. Un database chiave-valore in cui sono archiviati tutti i dati relativi al cluster Kubernetes.
- Kube-scheduler. Controlla i nuovi pod Kubernetes senza nodi assegnati e li assegna a un nodo per l'esecuzione in base a risorse, policy e specifiche di "affinità".
- Kube-controller-manager. Tutte le funzioni del controller del control plane sono compilate in un singolo binario: kube-controller-manager.
Un nodo K8s ha tre componenti principali:
- Kubelet. Un agente che si assicura che i container necessari siano in esecuzione in un pod Kubernetes.
- Kube-proxy. Un proxy di rete eseguito su ciascun nodo in un cluster per gestire le regole di rete e permettere la comunicazione.
- Runtime del container. Il software responsabile dell'esecuzione dei container. Kubernetes supporta qualsiasi runtime che aderisce alla CRI (Container Runtime Interface) di Kubernetes.
Ecco altri termini da conoscere:
- Servizio Kubernetes. Un servizio Kubernetes è un'astrazione logica per un gruppo di pod Kubernetes che eseguono tutti la stessa funzione. Ai servizi Kubernetes vengono assegnati indirizzi univoci che rimangono invariati anche quando le istanze di pod vanno e vengono.
- Controller. I controller assicurano che lo stato di esecuzione effettivo del cluster Kubernetes sia il più vicino possibile allo stato desiderato.
- Operatore. Gli operatori Kubernetes consentono di incapsulare la conoscenza specifica del dominio per un'applicazione in modo simile a un run book. Automatizzando le attività specifiche dell'applicazione, gli operatori consentono di distribuire e gestire più facilmente le applicazioni su K8.
Vantaggi di Kubernetes
La piattaforma Kubernetes è diventata popolare perché offre una serie di importanti vantaggi:
- Portabilità. I container sono portabili in molti ambienti, da quelli virtuali a quelli bare-metal. Kubernetes è supportato in tutti i principali public cloud, pertanto è possibile eseguire applicazioni containerizzate su K8 in molti ambienti diversi.
- Integrazione ed estensibilità. Kubernetes è estensibile e funziona con soluzioni già comprovate, come servizi di registrazione, monitoraggio e avviso. La community di Kubernetes sta lavorando su diverse soluzioni Open Source complementari a Kubernetes, creando un ecosistema ricco e che cresce rapidamente.
- Efficienza dei costi. L'ottimizzazione intrinseca delle risorse di Kubernetes, la scalabilità automatizzata e la flessibilità di eseguire i carichi di lavoro dove offrono il massimo valore significano che la spesa IT è sotto controllo.
- Scalabilità. Le applicazioni native per il cloud sono scalabili orizzontalmente. Kubernetes utilizza una funzione di "dimensionamento automatico", inserendo ulteriori istanze di container e scalando orizzontalmente in modo automatico in risposta alla domanda.
- API come base. La fabric basilare di Kubernetes è rappresentata dall'API REST. Ogni elemento dell'ambiente Kubernetes può essere controllato tramite programmazione.
- CI/CD semplificato. CI/CD è una procedura DevOps che automatizza la creazione, il test e il deployment delle applicazioni negli ambienti di produzione. Le aziende stanno integrando Kubernetes e CI/CD per creare pipeline CI/CD scalabili che si adattano dinamicamente al carico.
Che cos'è l'orchestrazione dei container?
L'orchestrazione dei container automatizza la maggior parte delle attività richieste per eseguire carichi di lavoro e servizi containerizzati, incluse le operation essenziali per il ciclo di vita dei container Kubernetes: provisioning, deployment, scalabilità, networking e bilanciamento del carico.
Kubernetes e Docker a confronto
Docker è una piattaforma software utilizzata per creare applicazioni containerizzate. K8s automatizza il processo di esecuzione di applicazioni containerizzate, native per il cloud create con Docker o altri strumenti. Le aziende spesso utilizzano Docker e Kubernetes insieme.
Soluzioni e prodotti correlati
Tanzu Kubernetes Grid
Gestione di Kubernetes di classe enterprise
Tanzu Community Edition
VMware Tanzu è operativo in pochi minuti e senza costi aggiuntivi sulla tua workstation locale o sul tuo cloud
Tanzu Application Platform
Crea, distribuisci e gestisci le app su una piattaforma Kubernetes