Che cos'è un cluster Kubernetes?

Pubblicato il 18 marzo 2020
Motivo di più laptop aperti disposti diagonalmente su uno sfondo arancione con spaziatura e ombre ripetute
By Sai Vennam

Definizione dei cluster Kubernetes

Un cluster Kubernetes è un insieme di nodi di calcolo (macchine virtuali o fisiche) che eseguono applicazioni containerizzate gestite con la piattaforma di orchestrazione di container Kubernetes.

Il cloud offre una miriade di benefici all'azienda, tra cui flessibilità, agilità, portabilità e controllo dei costi. A questi vantaggi si aggiunge però la complessità della gestione del cloud e della distribuzione delle app in esso contenute. Kubernetes è una piattaforma di orchestrazione dei container che può contribuire ad alleviare tali complessità.

I cluster forniscono la base architettonica per Kubernetes. Pensa ai cluster come a blocchi di costruzione che permettono una consegna rapida e controllata di app cloud. Un cluster Kubernetes è un insieme di macchine collegate che lavorano insieme come un'unica unità. Sono costituiti da nodi worker che rappresentano un host di calcolo su cui si possono implementare, eseguire e gestire app containerizzate . I nodi worker sono gestiti da nodi master, che programmano i container sui nodi worker scegliendo dove distribuirli in base alla capacità disponibile e alla configurazione definita dall'utente.

Gli script specificano la configurazione del container e quali risorse sono necessarie per eseguire l'app, come storage persistente, servizi e così via. In Kubernetes, i pod sono le unità dispiegabili più piccole in un cluster e raggruppano contenitori che devono essere trattati come un'unica unità. Kubernetes crea pod per ospitare istanze di applicazione. I pod contengono uno o più container di app e condividono risorse, ad esempio informazioni di storage o rete.

L'evoluzione verso l'orchestrazione di Kubernetes

L'avvento dei container ha contribuito a semplificare il cloud computing. I container impacchettano insieme il codice e tutte le sue dipendenze, permettendo a uno stack software di funzionare indipendentemente dall'ambiente in cui si trova. Sebbene i container offrano pacchetti discreti, complicano anche i problemi di gestione. La sfida era trovare un modo per far funzionare insieme questi pacchetti efficienti e leggeri. L'orchestrazione è stata la successiva evoluzione nella semplificazione degli ambienti multicloud.

Per saperne di più sulla containerizzazione, guarda il nostro video "Spiegazione della containerizzazione."

Per maggiori informazioni sull'orchestrazione dei container, guarda il nostro video "Spiegazione dell'orchestrazione dei container". (link esterno a ibm.com)

Kubernetes fornisce una piattaforma open source per la gestione di workload containerizzati e microservizi (link esterno a ibm.com). Questo permette agli sviluppatori di superare le differenze tra i provider di cloud applicando standard e coerenza su tutti i fronti per le applicazioni basate su container. La piattaforma è incentrata sui container e orchestra archiviazione, networking e calcolo al servizio dei workload degli utenti.

Con Kubernetes, gli utenti possono concentrarsi sulle funzionalità che desiderano dalle loro app cloud piuttosto che sviluppare funzionalità specifiche per piattaforma. L'architettura Kubernetes sottostante è ciò che alimenta questa capacità.

Per uno sguardo più approfondito sulle funzionalità di orchestrazione dei container di Kubernetes, vedere "Kubernetes e Docker: non c'è bisogno di scegliere":

 

Architettura del cluster Kubernetes

I cluster Kubernetes sono gli elementi costitutivi di Kubernetes e costituiscono la base architettonica della piattaforma. La modularità di questa struttura a blocchi consente accessibilità, scalabilità e facilità di distribuzione.

I workload odierni richiedono un'elevata disponibilità sia a livello di applicazione che infrastrutturale. Creando uno strato di astrazione tra le app e la loro infrastruttura sottostante, Kubernetes distribuisce il workload in modo efficiente tra le risorse disponibili. Kubernetes protegge dai guasti delle applicazioni tramite controlli costanti dello stato di salute dei nodi e dei container. Se un container si guasta, l'autoriparante e la replica risolvono l'errore. I bilanciatori di carico integrati distribuiscono il carico di lavoro su risorse aperte per ridurre l'impatto di picchi di traffico, picchi o interruzioni.

Questo stesso uso efficiente delle risorse ha un ruolo nella scalabilità. L'aggiunta e la rimozione di nuovi server è semplificata e consente un ridimensionamento orizzontale senza interruzioni. L'auto-scaling automatizzato aumenta i container in esecuzione in base a metriche specificate. I controlli di replica terminano i pod in eccesso se ce ne sono troppi in esecuzione o avviano i pod se ce ne sono troppo pochi.

Per un approfondimento sull'architettura di Kubernetes, guarda il seguente video: "Spiegazione di Kubernetes":

Guarda il video

La velocità è essenziale per gli sviluppatori. Kubernetes è progettato per consentire la rapida compilazione, il test e il rilascio del software. Nuove versioni o aggiornamenti vengono propagate tramite distribuzione automatica. Funziona bene anche con le release canary, consentendo alle distribuzioni di nuove versioni di funzionare parallelamente alle versioni precedenti, verificando l'affidabilità della nuova versione prima di avviarla alla produzione completa.

Monitoraggio del cluster Kubernetes tramite Prometheus

Man mano che le app containerizzate diventano più granulari e indipendenti, il monitoraggio diventa una sfida. Questa sfida si estende al monitoraggio dei cluster Kubernetes. Il monitoraggio tradizionale indica se un programma, servizio o strumento è attivo (in funzione) o non funzionante. Per i microservizi, l'approccio up/down è troppo marcato poiché un microservizio a funzione singola potrebbe essere fuori uso senza causare un impatto sull'azienda. Gli strumenti di monitoraggio moderni devono offrire distinzioni più raffinate e integrarsi meglio con piattaforme diverse e app mutabili.

Prometheus, uno strumento open source di registrazione, monitoraggio e avviso, è progettato per la portabilità e la mutevolezza degli ambienti multicloud e supera i limiti del monitoraggio tradizionale. Deriva metriche ricche da cluster Kubernetes, nodi worker e distribuzione. Prometheus utilizza coppie chiave-valore, che funzionano bene con il modo in cui Kubernetes organizza i metadati. Prometheus esegue regolarmente lo scraping e il rilevamento automatico dei dati di destinazione, il che lo rende una buona soluzione per workload effimeri.

IBM DevOps

Cos'è DevOps?

Andrea Crawford spiega cos'è DevOps, il suo valore e in che modo le pratiche e gli strumenti DevOps ti aiutano a spostare le tue app nell'intera delivery pipeline, dall'ideazione alla produzione. Guidato dai principali leader di pensiero IBM, il curriculum è progettato con lo scopo di aiutare i leader aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti nell'AI che possono promuovere la crescita.

Autore

Sai Vennam

Technical Offering Manager

Soluzioni correlate
IBM Instana Observability

Sfrutta la potenza dell'AI e dell'automazione per risolvere in modo proattivo i problemi in tutto lo stack di applicazioni.

Esplora IBM Instana Observability
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, implementare e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Servizi di consulenza cloud

Accelera l'agilità e la crescita della tua azienda. Modernizza costantemente le applicazioni su tutte le tue piattaforme usufruendo dei nostri servizi di consulenza per il cloud.

Esplora i servizi di consulenza cloud
Fasi successive

Dal rilevamento proattivo dei problemi con IBM Instana alle analisi in tempo reale su tutto il tuo stack, puoi mantenere le applicazioni cloud-native in esecuzione in modo affidabile.

  1. Scopri IBM Instana
  2. Esplora le soluzioni DevOps