Che cos'è Kubernetes?

Completato

La progettazione disaccoppiata di microservizi combinati con l'atomicità dei contenitori consente di aumentare le istanze delle app che rispondono alla domanda. In situazioni complesse come l'app di tracciamento droni, il processo di distribuzione, aggiornamento, monitoraggio e rimozione dei contenitori comporta diverse problematiche.

Prima di esaminare gli elementi disponibili in Kubernetes, è necessario comprendere due concetti, ovvero la gestione dei contenitori e gli agenti di orchestrazione.

Che cos'è la gestione dei contenitori?

La gestione dei contenitori è il processo di organizzazione, aggiunta, rimozione o aggiornamento di un numero significativo di contenitori.

L'app di tracciamento droni è costituita da più microservizi responsabili di attività quali la memorizzazione nella cache, l'accodamento o l'elaborazione dei dati. Ognuno di questi servizi è ospitato in un contenitore e può essere distribuito, aggiornato e ridimensionato in modo indipendente.

Diagram of a server or application replicated as containers for cloud deployment.

Ad esempio, con il sito Web dell'app di tracciamento droni si nota che in determinati orari della giornata sono necessarie più istanze del servizio di caching del sito per mantenere prestazioni adeguate, quindi si aggiungono altre istanze del contenitore del servizio di caching.

Si supponga quindi di avere aumentato il numero di istanze di caching e che sia necessario implementare una nuova versione del microservizio. È necessario aggiornare tutti i contenitori attivi in modo che usino la nuova versione.

La gestione dei contenitori semplifica l'esecuzione di queste attività ripetitive manuali.

Che cos'è un agente di orchestrazione contenitori?

Un agente di orchestrazione dei contenitori è un sistema che distribuisce e gestisce automaticamente le app inserite in contenitori. Nell'ambito della gestione, l'agente di orchestrazione gestisce le modifiche dinamiche di ridimensionamento nell'ambiente per aumentare o diminuire il numero di istanze distribuite dell'app. Garantisce inoltre che tutte le istanze di contenitore distribuite vengano aggiornate quando viene rilasciata una nuova versione di un servizio.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Informazioni su Kubernetes

Kubernetes è una piattaforma open source portabile ed estendibile per la gestione e l'orchestrazione dei carichi di lavoro in contenitori. Kubernetes semplifica le attività complesse di gestione dei contenitori e offre una configurazione dichiarativa per orchestrare i contenitori in ambienti di calcolo diversi. Questa piattaforma di orchestrazione offre la stessa facilità d'uso e la stessa flessibilità, probabilmente già note, delle offerte di piattaforme distribuite come servizio (PaaS) e di infrastrutture distribuite come servizio (IaaS).

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Vantaggi di Kubernetes

I vantaggi dell'uso di Kubernetes sono basati sull'astrazione delle attività.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

Queste attività includono:

  • Riparazione automatica dei contenitori. Ad esempio, il riavvio dei contenitori non eseguiti o la sostituzione dei contenitori

  • Ridimensionamento dinamico del numero di contenitori distribuiti in base alle esigenze

  • Aggiornamenti in sequenza automatici e ripristino dello stato precedente dei contenitori

  • Gestione dell'archiviazione

  • Gestione del traffico di rete

  • Archiviazione e gestione delle informazioni sensibili, ad esempio nomi utente e password

Importante

Tenere presente che tutti gli aspetti precedenti di Kubernetes richiedono la configurazione e una buona comprensione delle tecnologie sottostanti. Ad esempio, per configurare la rete Kubernetes è necessario comprendere concetti come reti virtuali, bilanciamenti del carico e proxy inversi.

Considerazioni su Kubernetes

Con Kubernetes è possibile visualizzare il data center come un'unica grande risorsa di elaborazione. Non è necessario preoccuparsi del modo e della posizione in cui distribuire i contenitori, ma solo di distribuire e ridimensionare le app in base alle esigenze.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

Tuttavia, è importante comprendere che Kubernetes non è una singola app installata che comprende tutti i possibili componenti necessari per gestire e orchestrare una soluzione in contenitori:

  • Operazioni come la distribuzione, il ridimensionamento, il bilanciamento del carico, la registrazione e il monitoraggio sono tutti facoltative. Sarà necessario individuare la soluzione più adatta alle proprie esigenze per eseguire le operazioni desiderate.

  • Kubernetes non limita i tipi di app che è possibile eseguire nella piattaforma. Se l'app può essere eseguita in un contenitore, può essere eseguita in Kubernetes. Per ottimizzare l'uso delle soluzioni in contenitori, è necessario che gli sviluppatori comprendano concetti come l'architettura di microservizi.

  • Kubernetes non offre middleware, framework di elaborazione dati, database, cache o sistemi di archiviazione cluster. Tutti questi elementi vengono eseguiti come contenitori o come parte di un'altra offerta di servizio.

  • Per eseguire i contenitori, Kubernetes necessita di un runtime per contenitori, come Docker o containerd. Il runtime dei contenitori è l'oggetto responsabile della gestione dei contenitori. Ad esempio, il runtime dei contenitori viene avviato, si interrompe e segnala lo stato del contenitore.

  • Si è responsabili della gestione dell'ambiente Kubernetes. Ad esempio, è necessario gestire gli aggiornamenti del sistema operativo e l'installazione e gli aggiornamenti di Kubernetes. È anche necessario gestire la configurazione hardware dei computer host, ad esempio la rete, la memoria e l'archiviazione.

I servizi cloud, ad esempio il servizio Azure Kubernetes, semplificano queste operazioni offrendo un ambiente Kubernetes ospitato. Questi servizi facilitano anche la distribuzione e la gestione delle app in contenitori in Azure. Il servizio Azure Kubernetes offre i vantaggi di Kubernetes open source senza la complessità o il sovraccarico operativo dell'esecuzione di un cluster Kubernetes personalizzato.

Nota

Kubernetes viene talvolta abbreviato in K8s. L'8 rappresenta gli otto caratteri compresi tra la K e la s della parola K[ubernete]s.