E-book "Kubernetes: Inizia ora

Scopri come iniziare a distribuire e gestire applicazioni in contenitori

Nozioni di base sui contenitori

Prima di iniziare a usare Kubernetes, è importante capire come funzionano i contenitori.

Proprio come le società di spedizione usano contenitori fisici per isolare i diversi carichi da trasportare su navi, treni, camion e aerei, le tecnologie di sviluppo software fanno sempre più spesso uso del concetto di containerizzazione.

Un singolo pacchetto di software, noto come contenitore, riunisce il codice di un'applicazione con le librerie e i file di configurazione correlati, nonché le dipendenze necessarie per l'esecuzione dell'app. In questo modo, sviluppatori e professionisti IT possono creare e distribuire le applicazioni in modo più rapido e sicuro.

La containerizzazione offre vantaggi in termini di isolamento, portabilità, flessibilità, scalabilità e controllo per l'intero ciclo di vita di un'applicazione. Un contenitore, astratto dal sistema operativo host, è un componente autonomo più portabile, che è possibile eseguire in qualsiasi piattaforma o cloud, in modo coerente e uniforme in ogni infrastruttura.

Componenti e concetti di Kubernetes

Cluster

A livello generale, Kubernetes è organizzato come cluster di macchine virtuali o locali. Queste macchine, dette nodi, condividono le risorse di calcolo, rete e archiviazione. Ogni cluster ha un nodo master connesso a uno o più nodi di lavoro. I nodi di lavoro sono responsabili dell'esecuzione di gruppi di carichi di lavoro e applicazioni in contenitori, noti come pod, mentre il nodo master stabilisce quali pod vengono eseguiti in quali nodi di lavoro.

Vedi una panoramica di Kubernetes

Piano di controllo

Per consentire la comunicazione del nodo master con i nodi di lavoro e di una persona con il nodo master, Kubernetes include diversi oggetti che insieme formano il piano di controllo.

Sviluppatori e operatori interagiscono con il cluster principalmente tramite il nodo master usando kubectl, un'interfaccia della riga di comando installata nel sistema operativo locale. I comandi inviati al cluster tramite kubectl vengono ricevuti dal componente kube-apiserver, l'API Kubernetes che risiede nel nodo master. Il componente kube-apiserver comunica quindi le richieste al componente kube-controller-manager nel nodo master, responsabile a sua volta della gestione delle attività dei nodi di lavoro. I comandi del nodo master vengono ricevuti dal kubelet nei nodi di lavoro.

Distribuzione di app e carichi di lavoro

Il passaggio successivo per iniziare a usare Kubernetes consiste nel distribuire app e carichi di lavoro. Il nodo master gestisce continuamente la configurazione e lo stato corrente del cluster Kubernetes in etcd, un database per l'archiviazione di valori chiave. Per eseguire i pod con i carichi di lavoro e le app in contenitori, devi descrivere un nuovo stato desiderato per il cluster sotto forma di file YAML. Il componente kube-controller-manager usa il file YAML e assegna a kube-scheduler la responsabilità di stabilire quali nodi di lavoro devono essere eseguiti dall'app o dal carico di lavoro in base a vincoli predefiniti. Interagendo con il kubelet di ogni nodo di lavoro, il componente kube-scheduler avvia i pod, analizza lo stato dei computer ed è responsabile in generale della gestione delle risorse.

Guarda come funziona il componente kube-scheduler

In una distribuzione di Kubernetes lo stato desiderato descritto diventa lo stato corrente nel database etcd, ma lo stato precedente non va perso. Kubernetes supporta il ripristino dello stato precedente, gli aggiornamenti in sequenza e la sospensione delle implementazioni. Le distribuzioni usano inoltre set di repliche in background per garantire che sia in esecuzione il numero specificato di pod configurati in modo identico. In caso di errore di uno o più pod, questi vengono sostituiti dal set di repliche. Si può quindi dire che Kubernetes abbia capacità di riparazione automatica.

Definizione della struttura e protezione degli ambienti Kubernetes

Dopo che l'app o il carico di lavoro è stato distribuito, l'ultimo passaggio per iniziare a usare Kubernetes consiste nell'organizzare i componenti e determinare chi o cosa può accedervi. Creando uno spazio dei nomi, un metodo di raggruppamento all'interno di Kubernetes, puoi consentire a servizi, pod, controller e volumi di interagire facilmente, isolandoli nel contempo dalle altre parti del cluster. Puoi usare il concetto di spazi dei nomi di Kubernetes anche per applicare configurazioni coerenti alle risorse.

Guarda come funziona la gestione della configurazione

Ogni nodo di lavoro contiene inoltre un componente kube-proxy, che determina come è possibile accedere ai diversi aspetti del cluster dall'esterno. Archivia le informazioni sensibili non pubbliche, come token, certificati e password, nei segreti, un altro oggetto Kubernetes, che sono codificati fino al runtime.

Guarda come funziona la gestione dei segreti

Specifica infine chi può vedere le diverse parti del cluster e interagire con esse, nonché come possono interagire le parti tra di loro, usando il controllo degli accessi in base al ruolo.

Guarda come funziona il controllo degli accessi in base al ruolo

Approfondisci i dettagli tecnici di Kubernetes

Vedi la documentazione di Kubernetes

Implementa una soluzione Kubernetes completamente gestita

Gestisci l'ambiente Kubernetes ospitato con il servizio Azure Kubernetes. Distribuisci e gestisci app in contenitori senza attività di orchestrazione dei contenitori. Effettua il provisioning delle risorse, aggiornale e ridimensionale on demand, senza portare le app offline.

Avvio rapido di Kubernetes: come diventare operativi in 50 giorni

Usa questa guida dettagliata per muovere i primi passi con Kubernetes e ottenere un'esperienza pratica con componenti, funzionalità e soluzioni Kubernetes.

Possiamo iniziare quando vuoi - Prova Kubernetes gratuitamente in Azure