Skip to content Skip to sidebar Skip to footer

Come spiegare Kubernetes in parole povere

Lo sviluppo d’infrastrutture web moderno richiede, e per buone ragioni, l’utilizzo di container, architetture orientate a microservizi e software di orchestrazione. In quest’ultimo campo, Kubernetes o k8s per gli amici, è l’incontestato peso massimo, il più complesso e completo tra tutti i contendenti.

La piattaforma di Kubernetes è stata inizialmente sviluppata da un team di Google e successivamente donata alla Cloud Native Computing Foundation (CNCF). Non è l’unica opzione per la gestione dei container, ma è diventata rapidamente una delle più popolari. Come osserva Opensource.com, “Oggi Kubernetes è una vera comunità open source, con il lavoro degli ingegneri di Google, Red Hat e molte altre aziende che contribuiscono attivamente al progetto”.

In effetti, è uno dei progetti più veloci nella storia dell’open source. Ciò significa che in futuro avrai ancora più conversazioni su Kubernetes, con non solo professionisti IT, ma anche persone non tecniche con una partecipazione nel software dell’azienda. Vale a dire: praticamente tutti.

Cosa significa Kubernetes?

Come spieghi Kubernetes e l’orchestrazione in termini chiari che le persone possono almeno iniziare a capire? E da dove viene questo nome insolito? L’origine concordata è dal greco, che significa “timoniere” o “maestro di vela”.

Ecco come l’evangelista della tecnologia Red Hat Gordon Haff spiega Kubernetes nel suo libro “Da pentole e tini a programmi e app”, scritto in collaborazione con William Henry, stratega del cloud di Red Hat:

“Kubernetes, o k8s, è una piattaforma open source che automatizza le operazioni dei container Linux. Elimina molti dei processi manuali coinvolti nella distribuzione e nel ridimensionamento delle applicazioni containerizzate”, scrivono Haff e Henry. “In altre parole, puoi raggruppare insieme gruppi di host che eseguono container Linux e Kubernetes ti aiuta a gestire in modo semplice ed efficiente quei cluster”.

Perché i professionisti IT stanno implementando più container in primo luogo? Tanto per cominciare, velocità di implementazione, portabilità del carico di lavoro e adattamento al modo di lavorare DevOps. I container possono semplificare notevolmente il provisioning delle risorse per gli sviluppatori che hanno poco tempo. “Una volta che le organizzazioni comprendono i vantaggi dei container e di Kubernetes per DevOps, lo sviluppo di applicazioni e la distribuzione, si aprono così tante possibilità, dalla modernizzazione delle applicazioni tradizionali, alle implementazioni ibride e multi-cloud e allo sviluppo di nuove applicazioni cloud-native con velocità e agilità”, afferma Ashesh Badani, SVP e general manager per le piattaforme cloud di Red Hat.

Perché dovresti usare Kubernetes

I container sono un modo prezioso per raggruppare ed eseguire applicazioni. Ad esempio, in un ambiente di produzione, è necessario gestire i contenitori che eseguono le applicazioni ed evitare tempi di inattività. Se un container va giù, deve iniziare un altro container.

Un sistema Kubernetes gestisce questo comportamento fornendo un framework per l’esecuzione resiliente di sistemi distribuiti. Inoltre, Kubernetes gestisce il ridimensionamento e il failover per le applicazioni, offre modelli di distribuzione e altro ancora.

Abilità aggiuntive con Kubernetes:

  • Bilanciamento e rilevamento del carico del servizio: Kubernetes può esporre un container utilizzando il suo indirizzo IP o il nome DNS. Kubernetes può bilanciare il carico e distribuire il traffico di rete per stabilizzare la distribuzione durante i picchi di traffico.
  • Orchestrazione dello storage: Kubernetes consente il montaggio automatico del sistema di storage scelto, ad esempio provider di cloud pubblico o storage locale.
  • Rollout e rollback automatizzati: gli utenti possono descrivere lo stato preferito per i container distribuiti e Kubernetes può modificare lo stato dei container a una velocità regolamentata. Ad esempio, è possibile automatizzare Kubernetes per creare nuovi contenitori per la distribuzione, rimuovere i contenitori correnti e applicare tutte le loro risorse al nuovo contenitore.
  • Imballaggio automatico dei contenitori: fornisci a Kubernetes un cluster di nodi per eseguire attività in contenitori. Ad esempio, è possibile istruire Kubernetes su quanta memoria (RAM) e CPU richiede ciascun container. Kubernetes può adattare i container ai tuoi nodi per garantire il massimo utilizzo delle tue risorse.
  • Auto-riparazione: Kubernetes può riavviare i contenitori non riusciti, sostituirli, uccidere quelli che non rispondono a un test di integrità definito dall’utente e non li promuoverà ai clienti finché non saranno pronti per la pubblicazione.
  • Gestione dei segreti e della configurazione: Kubernetes consente di archiviare e gestire dati sensibili, come chiavi SSH, token OAuth e password. È possibile aggiornare e distribuire i segreti e le configurazioni delle applicazioni senza aggiornare le immagini del contenitore o esporre i segreti nella configurazione dello stack.

Leave a comment