Come funziona Kubernetes: mini guida per capire il funzionamento di uno dei tools più importanti per un developer oggi
Come funziona Kubernetes? Lo vediamo in questa mini guida tenendo sempre in considerazione che Kubernetes è un tool di grande rilevanza per un developer che vuole crescere e che realmente crede nella sua professione.
Iniziamo con il definire che cos’è Kubernetes (Cos’è Kubernetes), proprio perché stiamo parlando di una piattaforma di orchestrazione per container open source, progettata per l’esecuzione di applicazioni e servizi distribuiti su larga scala.
Ok, detto questo, che vuol dire poco e niente, vediamo come funziona Kubernetes e quali sono le funzionalità principali di questo strumento Devops che più di ogni altro oggi completa in maniera significativa le skills di un developer.
Progettare con Kubernetes
Per capire il funzionamento di Kubernetes, iniziamo dal concetto di progettazione. La progettazione con Kubernetes è tutta basata su cluster. Come deve essere un cluster?
- Sicuro. Il cluster “a norma” deve necessariamente essere in linea con le best practice più aggiornate in ambito di sicurezza.
- Facile da usare. Deve poter funzionare con pochi e semplici comandi.
- Estendibile. Non deve essere vincolato ad alcun vendor lock in e soprattutto deve essere personalizzabile a partire da un file di configurazione.
Cluster Kubernetes
Un cluster di kubernetes possiede 2 elementi essenziali che vanno approfonditi attentamente
- piano di controllo
- nodi
Piano di Controllo
Il centro nevralgico del cluster Kubernetes è il piano di controllo, in cui troviamo i componenti Kubernetes che controllano il cluster e i dati sullo stato e sulla configurazione del cluster.
Ogni piano di controllo in ambito Kubernetes a sua volta è costituito da questi elementi fondamentali. Dovete considerare che il piano di controllo garantisce che il cluster venga configurato nel modo più ottimale possibile.
kube apiserver
l’API Kubernetes rappresenta di fatto il front end del piano di controllo di Kubernetes in quanto ne gestisce le richieste interne ed esterne. Il server API stabilisce se una richiesta è valida, e in caso positivo, procede alla sua elaborazione
kube scheduler
Lo scheduler Kubernetes si occupa di garantire l’integrità del cluster e quindi di assicurare che il cluster abbia la capacità sufficiente per ospitare altri nuovi container.
kube controller manager
I controller si occupano dell’effettiva esecuzione del cluster; nello specifico vuol dire che il controller-manager Kubernetes riunisce in un unico controller parecchie funzioni di controllo
etcd
Un etcd non è altro che un database di archiviazione chiave-valore, pertanto memorizza dati e informazioni di configurazione connessi allo stato del cluster.
Nodi
Un cluster Kubernetes richiede almeno un nodo di lavoro, dobbiamo però considerare che di solito sono presenti più di un nodo all’interno del cluster. I pod vengono pianificati e orchestrati per essere eseguiti sui nodi, di conseguenza per aumentare la capacità del cluster è sufficiente aggiungere altri nodi.
Ogni nodo in ambito Kubernetes a sua volta è costituito da questi elementi fondamentali.
pod
Come si è appena potuto evincere, tutti i pod sono costituiti da container, o da coppie di container. il Pod è l’unità/elemento più piccola di tutto il sistema Kubernetes.
motore di runtime del container
Ogni nodo a sua volta supporta un motore di runtime per eseguire i container, Docker non a caso è proprio uno di questi!
kubelet:
si tratta di una mini applicazione che comunica con il piano di controllo e verifica che i container vengano eseguiti in un pod.
kube proxy
La sua funzione è quella di gestire le comunicazioni di rete interne ed esterne al cluster coordinando il filtraggio dei pacchetti del sistema operativo.
Read related articles
Kubernetes Cloud: servizi Cloud per Kubernetes, mini guida pratica
Kubernetes Cloud: vediamo da vicino Amazon Elastic Kubernetes Service (EKS) Google Kubernetes Engine (GKE) e Servizio Azure Kubernetes (AKS) I
Docker vs Kubernetes: vediamo in cosa differiscono
Docker vs Kubernetes: vediamo in cosa differiscono e perché a volte si tende a far confusione Spesso sentiamo chiedere in
Kubernetes: cos’è e tutto quello che non puoi non sapere a riguardo
Perché scegliere Kubernetes In questo articolo parliamo di Kubernetes, la piattaforma opensource che permette a tutti coloro che la utilizzano