Che cos'è Kubernetes?
Kubernetes è uno strumento di orchestrazione dei container. È stato sviluppato da Google per automatizzare e gestire il deployment di container, cioè pacchetti di software portabili che contengono tutti i file binari, le librerie, i file di configurazione e altre dipendenze necessarie per l'esecuzione di quel programma software.
Cos'è l'orchestrazione dei container?
L'orchestrazione dei container si riferisce all'automazione di compiti comuni di gestione dei containers, come il deployment, il ridimensionamento e il networking. Invece di implementare manualmente i tuoi microservizi e le applicazioni web in produzione, gli strumenti di orchestrazione dei container come Kubernetes ti permettono di creare workflow automatizzati.
Anatomia di un cluster Kubernetes
Kubernetes offre una serie di caratteristiche che ti aiutano a effettuare il provisioning e il deployment dei tuoi programmi software containerizzati.
Il modo migliore per capire Kubernetes è avere una visione chiara di ciò che contiene un cluster tipico Kubernetes:
- Pod: la più piccola unità di calcolo implementabile che puoi creare e gestire in Kubernetes, da un singolo container a più container in esecuzione sulle stesse risorse di storage/rete condivise.
- Nodi: le macchine worker (virtuali o fisiche) in cui sono ospitati i pod che costituiscono il workload di un'applicazione. Ogni nodo include almeno un Kubelet, un agent che assicura che i container descritti vengano eseguiti nel pod su un cluster.
- Piano di controllo: il livello di orchestrazione che espone l'API utilizzata per gestire container, pod e nodi.
- Componenti aggiuntivi: caratteristiche come il DNS del cluster estendono le funzionalità di un cluster e forniscono un server DNS o un'interfaccia utente web che può essere utilizzata come dashboard per il monitoraggio e la risoluzione dei problemi delle applicazioni in esecuzione nel cluster o per il cluster stesso.