
News
Contenuti per la community dell'HPC e gli appassionati di innovazione: tutorial, news e press release per utenti, ingegneri e amministratori
- Tutte le news
- Aerospace & Defence
- Artificial Intelligence
- Blog
- Cloud Platform
- HPC
- Kubernetes Cluster
- Press
- Progetti Europei
- Ultime news
- Varie E4
- Video
Kubernetes Cluster: orchestrazione di container ad alte prestazioni con Kaptain

In questo articolo entreremo nel vivo di Kubernetes (eh sì, si scrive così… Kubernetes, o al massimo, K8s o Kube, e NON, come molti spesso scrivono Kubernates, cubernetes, kubernetis o kubernets… :)).
Vi spiegheremo che cos’è questo strumento, come funziona e quando utilizzarlo; infine, vi racconteremo della nostra soluzione KAPTAIN e di come l’abbiamo implementata presso un nostro cliente, risolvendogli parecchi problemi!
INDICE:
- Che cos’è Kubernetes?
- Cosa significa Orchestrazione di Container?
- Come funziona l’Orchestrazione di Container?
- Cluster Kubernetes ad alte prestazioni: la soluzione Kaptain.
- Case study: Kaptain implementato presso un nostro cliente.
CHE COS’E’ KUBERNETES?
Kubernetes è una piattaforma open source che serve per automatizzare tutte le operazioni che girano su container. Attraverso l’automatizzazione, molti dei processi manuali coinvolti nel deployment, vengono quindi resi automatici, alleggerendo così il carico di lavoro dei dipartimenti IT, che possono dedicarsi ad operazioni più complesse, come ad esempio, l’ottimizzazione dell’infrastruttura.
Kubernetes, progettato e sviluppato nei laboratori di Google oltre 15 anni fa e reso open source nel 2014, è organizzato in cluster, ossia un insieme di nodi che eseguono applicazioni containerizzate. Questo progetto ha generato attorno a sè una community molto numerosa di sviluppatori, che lavora continuamente al rilascio di aggiornamenti e miglioramenti della piattaforma stessa.
COME FUNZIONA E QUANDO UTILIZZARE KUBERNETES?
La complessità delle operazioni di deployment, pianificazione e bilanciamento del carico di un’infrastruttura cresce esponenzialmente di anno in anno.
Questo fenomeno ha portato le aziende a dover trovare dei metodi per organizzare infrastruttura, team di sviluppo e processi, affinché siano rapidi ed efficaci.
È in questo contesto che nascono i container e Kubernetes, la piattaforma ideale per la loro gestione.
COSA SIGNIFICA ORCHESTRAZIONE DI CONTAINER?
Per diverso tempo il deploy di un’applicazione in produzione è rimasta una pratica complessa ed onerosa da portare a termine – anche per gli amministratori di sistema più esperti.
In un ambiente di sviluppo, le applicazioni sono normalmente costituite da centinaia di componenti containerizzati separatamente (microservizi) che devono però essere organizzati in modo tale da lavorare insieme per far sì che l’applicazione possa essere eseguita nel modo corretto. Il processo di organizzazione dei diversi container è noto come orchestrazione dei container.
COME FUNZIONA L’ORCHESTRAZIONE DI CONTAINER?
A differenza di ciò che accade nelle tradizionali macchine virtuali, dove l’intera infrastruttura viene virtualizzata, grazie ai container è possibile isolare le singole applicazioni, raggruppando tutte le librerie, le dipendenze e i file necessari alla loro esecuzione. In questo modo, ogni sviluppatore può lavorare e spostare le applicazioni tra i vari ambienti, dalla produzione, allo sviluppo, al test senza problematiche a livello di sicurezza, mantenendo intatte tutte le funzionalità dell’applicazione e lavorando nella massima flessibilità.
I container sono leggeri e flessibili e permettono la realizzazione di nuove architetture applicative. Con questo nuovo approccio, i diversi servizi che costituiscono un’applicazione vengono raggruppati in container separati che vengono poi distribuiti attraverso un cluster di macchine fisiche o virtuali. Ciò ha portato alla necessità di orchestrazione dei container, ovvero di avere a disposizione uno strumento, come Kubernetes, che automatizzi la distribuzione, la gestione, il ridimensionamento, il networking e la disponibilità di applicazioni basate su container.
Kubernetes consente quindi agli utenti di controllare l’avvio e l’interruzione dei container, di raggrupparli in cluster e di coordinare tutti i processi che compongono un’applicazione. In questo modo gli utenti possono di guidare la distribuzione dei container e automatizzare gli aggiornamenti, il monitoraggio dello stato e le procedure di failover.
CLUSTER KUBERNETES AD ALTE PRESTAZIONI: LA SOLUZIONE KAPTAIN
KAPTAIN è il cluster basato su Kubernetes progettato dagli esperti HPC di E4. Si tratta di una piattaforma ad alte prestazioni e pronta all’uso, adatta ad ospitare i carichi di lavoro più esigenti in termini di risorse di elaborazione e archiviazione.
KAPTAIN è una soluzione “chiavi in mano”, disegnata per garantire semplicità d’uso ed alte prestazioni: la sua configurazione iniziale integra, ad esempio, un servizio di block storage distribuito per la data persistency dei container ed una potente interfaccia web che, tra le altre cose, dà accesso ad un articolato catalogo di applicazioni open-source,
Inoltre, può ospitare piattaforme di analisi dati su larga scala come Apache Spark, KubeFlow, Dask e Ray, dando così la possibilità di avere un sistema potente e completo per la Cloud Native Data Science.

Quali sono le caratteristiche principali di KAPTAIN?
- É UNA PIATTAFORMA AD ALTE PRESTAZIONI: Comprende i componenti tipici delle infrastrutture HPC (dischi all-flash, GPU e rete RDMA), per eseguire i carichi di lavoro più intensivi di dati.
- É DOTATA DI UN’UI SEMPLICE E POTENTE: La distribuzione del server Rancher consente interfacce utente potenti e facili da usare.
- HA UNO STORAGE NATIVE CLOUD PRECONFIGURATO: È possibile utilizzare sia una risorsa storage esterna (NFS, Gluster, Ceph ..), sia una soluzione di block storage distribuita, per l’implementazione, in self-provisioning, di volumi persistenti da “abbinare” a carichi di lavoro containerizzati.
Come è strutturato KAPTAIN?
Un cluster Kubernetes è un’insieme di server configurati per eseguire applicazioni e servizi containerizzati; il core dell’architettura è la cosiddetta ControlPlane (l’insieme dei servizi API Server, Controller Manager, Scheduler ed Etcd) che è preposta alla gestione ed all’orchestrazione dei container e fornisce l’interfaccia (API) verso l’esterno del cluster. La più semplice configurazione di una infrastruttura Kubernetes prevede un Master Node, che ospita la ControlPlane, ed un insieme di Worker Node, dedicati all’esecuzione dei workload utente containerizzati. I server dell’infrastruttura possono essere interconnessi sia attraverso una Rete Interna, dedicata alla comunicazione tra la ControlPlane ed i Worker Node, che tramite una Rete Esterna, dedicata all’accesso ad applicazioni ed servizi in esecuzione sui Worker Node.

KAPTAIN: l’IMPLEMENTAZIONE PRESSO IL CLIENTE ITS UMBRIA ACADEMY
E4 ha implementato la soluzione KAPTAIN presso il cliente ITS Umbria Academy.
ITS Umbria è un’Academy in Scienze e Tecnologie Applicate. In ottica di crescita e sviluppo del proprio laboratorio didattico ITS Umbria aveva necessità di implementare un’infrastruttura, “chiavi in mano”, ad alte prestazioni che potesse ospitare piattaforme di analisi dati su larga scala.
Kaptain era perfetto per soddisfare questa esigenza, in quanto disegnato per ospitare i workload più onerosi e quindi adatto a ospitare piattaforme e framework per l’analisi di Big Data, grazie all’integrazione di server high-end e di un network ad alte prestazioni, basato sulla tecnologia Mellanox Ethernet RDMA 25+ Gigabit/s, utilizzato per la comunicazione tra container e per l’accesso alle risorse di storage.
Se vuoi saperne di più sul nostro lavoro per ITS Umbria di più clicca qui
Se vuoi conoscere meglio KAPTAIN contattaci o clicca qui