Kubernets: Perchè adottarlo?

Kubernetes (k8s), è una piattaforma open source, introdotta da Google, introdotta come un semplice strumento di orchestrazione di container ma è diventata di fatto la piattaforma cloud-native.

Perché “k8s” viene così ampiamente utilizzato?

Poichè  è in grado di rispondere efficacemente alle richieste di qualità di servizio degli utenti,  di adattarsi alla creatività dei cloud-architect e di essere così stabile da soddisfare le richieste delle operation.

Tali vantaggi possono essere così riassunti:

  • Affidabile
  • Scalabile
  • Auto-guarigione
  • Veloce
  • Efficiente
  • Sicuro
  • Agile
  • Trasportabile

Nel presente articolo svilupperemo le 8 argomentazioni appena indicate:

1- Affidabilità significa un’architettura in grado di funzionare anche se una parte di essa non è più disponibile. K8s è stato pensato con una filosofica nativamente clusterizzata.

2- La scalabilità è necessaria per gestire qualsiasi picco di carico di lavoro. In altre parole, è in grado di risponde a richieste di nuove risorse on-demand.

Il modello di architettura sul quale si basa è il disaccoppiamento. Ogni singolo componente ha le proprie caratteristiche e può essere facilmente aggiunto all’ambiente k8s.

Attraverso i file di configurazione i vari oggetti sono autorizzati a comunicare tra loro.

I componenti principali dell’architettura k8s sono i nodi, i componenti dei servizi k8s sono i bilanciatori del carico, i name-spaces e così via (vedi prossimi articoli)

3- Guarigione: K8s agisce per assicurare che lo stato corrente corrisponda automaticamente allo stato desiderato dell’architettura.

4- Veloce: K8s è in grado di distribuire i componenti immediatamente. In questo modo è possibile rispondere ad una richiesta di gestione del sovraccarico e/o necessità di implementare velocemente nuovi servizi.

5- L’efficienza è il rapporto tra il lavoro utile e la quantità totale di energia utilizzata per ottenere il risultato. K8s per la sua architettura ha il miglior rapporto perché ha l’essenzialità nel suo DNA.

6- La sicurezza lavora a stretto contatto con k8s.

a- Le immagini che girano nei contenitori sono per la loro definizione immutabili. Questo approccio ha un grande vantaggio perché:

Nessuna modifica viene implementata a livello di sistema (contenitore).

-Niente può modificare il nucleo del servizio a meno che l’intera immagine non venga eliminata e ridistribuita.

Confrontiamo questo approccio con un ambiente standard, dove è presente una VM  Linux.

Se su quest’ultima volessimo installare, modificare, aggiornare un’applicazione, dovremmo agire via apt-get sui pacchetti necessari.

Così facendo modificheremo l’ambiente aprendo di fatto una breccia in ambito sicurezza.

In K8s non viene modificata l’immagine ma cancellata e ricreata.

b- Un altro grande vantaggio è che le modifiche alla configurazione sono gestite tramite file dichiarativi (file di configurazione). Questi file hanno una descrizione dello stato finale del sistema. Il risultato è che mostrano l’effetto della configurazione prima che venga eseguita.

7- Agilità significa maggiore facilità ed efficienza nella creazione di immagini container rispetto all’utilizzo di immagini VM. Lo sviluppatore può scrivere codice indipendentemente dai problemi di compatibilità.

8- La portabilità crea lo standard del ciclo di vita dello sviluppo software.

Nota 1: la prima versione di Kubernetes risale al 2014 ed è stata creata per rispondere alla necessità di implementare una solida soluzione di cluster per ambienti container.

Statemi  bene e a presto