1. Argomenti
  2. Container
  3. Cos'è l'orchestrazione dei container?

Cos'è l'orchestrazione dei container?

CopiedFailedCopia URL
  • L'orchestrazione dei container è il processo che permette di automatizzare il deployment, la gestione, la scalabilità e il networking dei container attraverso l'intero ciclo di vita.
  • Le piattaforme di orchestrazione dei container, come Kubernetes, garantiscono un'operatività lineare e autogestita.
  • L'orchestrazione coordina i microservizi in container separati.
  • Kubernetes consente di eliminare molti processi manuali necessari per il deployment e la scalabilità delle applicazioni containerizzate.
  • Red Hat rende disponibili strumenti strategici per proteggere, semplificare e aggiornare in modo automatico l'infrastruttura dei container.

Cos'è l'orchestrazione dei container?

L'orchestrazione dei container è il processo che permette di automatizzare il deployment, la gestione, la scalabilità e il networking dei container attraverso l'intero ciclo di vita, consentendo di distribuire il software in modo uniforme in molto ambienti diversi e su larga scala.

I container, che creano un'unità autonoma costituita da un'applicazione e dal suo ambiente di runtime, sono essenziali per lo sviluppo delle applicazioni cloud native. L'orchestrazione dei container è una metodologia importante soprattutto per le aziende che devono distribuire e gestire centinaia o migliaia di host e container. La maggior parte delle soluzioni per l'orchestrazione dei container è basata su Kubernetes, una piattaforma open source molto popolare. 

Ebook: Utilizza Red Hat OpenShift per innovare e trasformare con una piattaforma applicativa moderna

Le piattaforme di orchestrazione dei container, come Kubernetes, automatizzano l'intero ciclo di vita dei container, trasformando una potenziale attività di manutenzione continua per i team IT in un'operazione lineare e autogestita.

L'orchestrazione dei container porta vantaggi al processo di sviluppo in termini di metodi, costi e sicurezza.

Più velocità di sviluppo

I container, che sono progettati per essere portabili ed essere eseguiti in modo uniforme in tutti gli ambienti, consentono di sviluppare metodi più rapidi di sviluppo del software. L'orchestrazione dei container permette di creare pipeline di integrazione continua e deployment continuo (CI/CD), che migliorano la distribuzione del software tramite un ciclo di sviluppo automatizzato. Inoltre, l'orchestrazione dei container si collega a un approccio DevOps, il cui obiettivo è accelerare il processo che porta dallo sviluppo al deployment.

Risparmio sui costi

L'orchestrazione dei container permette di ridimensionare automaticamente i container in base alle esigenze aziendali, e fornisce la capacità necessaria per le tue applicazioni, riducendo al tempo stesso i costi e preservando le risorse. Una piattaforma per l'orchestrazione dei container può fornire la flessibilità necessaria per utilizzare in modo efficiente gli ambienti ibridi e multicloud.

Sicurezza

I team che realizzano il software nei container possono risolvere i problemi di sicurezza in fase di sviluppo, senza dover aggiornare o applicare una patch a un'applicazione in esecuzione. Questa funzione migliora la capacità di prevedere il comportamento dei container e di individuare le anomalie. Con l'orchestrazione dei container, le aziende possono adottare anche criteri di sicurezza e governance, così come criteri specifici per pod o gruppi di pod. Le piattaforme per l'orchestrazione dei container supportano anche il controllo degli accessi basato sui ruoli (RBAC), che consente di assegnare a ciascun account (utente o servizio) un determinato livello di autorizzazione.

Vantaggi della sicurezza Kubernetes native

L'orchestrazione dei container gestisce le elevate esigenze operative delle moderne applicazioni cloud native. In passato, un'applicazione software era un unico blocco di grandi dimensioni, anche detta "monolite". Oggi le applicazioni vengono suddivise in decine o centinaia di minuscoli servizi indipendenti, chiamati microservizi, ognuno eseguito nel proprio container. L'orchestrazione coordina queste componenti, garantendo che possano comunicare, essere scalabili in modo indipendente ed eseguite in modo affidabile in ambienti diversi.

L'orchestrazione dei container si serve dell'automazione per semplificare la gestione di numerose attività, tra cui:

  • Provisioning e deployment: l'agente di orchestrazione legge il modello di configurazione, scarica le immagini dei container necessarie e le inizializza automaticamente sull'infrastruttura.
  • Configurazione e pianificazione: valuta i server del cluster per scegliere l'host ottimale per ciascun container e inietta le variabili di ambiente e le impostazioni di storage necessarie all'avvio.
  • Allocazione delle risorse: utilizzando limiti di CPU e memoria definiti, l'agente di orchestrazione comprime in modo intelligente i container sui server, massimizzando l'efficienza dell'hardware senza che le applicazioni competano per le risorse.
  • Disponibilità dei container: monitora continuamente il cluster e sostituisce immediatamente i container o i server guasti.
  • Scalabilità e bilanciamento dei carichi di lavoro: avvia in modo automatico le repliche aggiuntive dei container quando il traffico supera le soglie di risorse definite e le rimuove quando la domanda diminuisce, per ridurre i costi.
  • Bilanciamento del carico e routing del traffico: fornisce un endpoint di instradamento interno permanente che distribuisce il traffico di rete in modo uniforme su un pool variabile di indirizzi IP dei container.
  • Monitoraggio dell'integrità dei container: operazioni di diagnostica automatizzate controllano che i container funzionino correttamente, riavviando subito le applicazioni bloccate e impedendo l'invio di traffico ai container ancora in fase di avvio.
  • Configurazione delle applicazioni per container: disaccoppia le impostazioni dal codice dell'applicazione iniettando configurazioni e chiavi segrete univoche direttamente nell'ambiente container in fase di runtime.
  • Protezione delle interazioni: applica criteri firewall di rete rigidi e isolati che indicano in modo esplicito quali container possono comunicare tra loro, riducendo al minimo i rischi di sicurezza.

Gli strumenti di orchestrazione dei container offrono un framework per la gestione dell'architettura dei microservizi e dei container sfruttando modalità scalabili. Numerosi sono gli strumenti disponibili per la gestione del ciclo di vita dei container. Tra i più diffusi ricordiamo Kubernetes, Docker Swarm e Apache Mesos.

Kubernetes è uno strumento di orchestrazione dei container open source che fu inizialmente progettato e sviluppato dagli ingegneri di Google. Nel 2015 Google ha ceduto il controllo del progetto Kubernetes alla neonata Cloud Native Computing Foundation.

Come Kubernetes supporta l'orchestrazione dei container

L'orchestrazione di Kubernetes consente di creare servizi applicativi che si estendono su più container, programmare tali container in un cluster e gestirne la scalabilità e l'integrità nel tempo.

Kubernetes consente di eliminare molti processi manuali necessari per il deployment e la scalabilità delle applicazioni containerizzate. Questa piattaforma semplifica e ottimizza la gestione dei cluster formati dai gruppi di host, che possono essere macchine virtuali o fisiche, che eseguono i container Linux. 

Più in generale, Kubernetes ti permette di implementare e di fare pieno affidamento su un'infrastruttura containerizzata negli ambienti di produzione. Questi cluster possono gestire host su cloud pubblici, privati o ibridi. Queste funzionalità rendono quindi Kubernetes la piattaforma più adeguata per l'hosting di applicazioni cloud native che richiedono scalabilità rapida.

Infine, semplifica il bilanciamento e la portabilità dei carichi di lavoro, perché permette di trasferire le applicazioni tra diversi ambienti senza doverle riprogettare. 

I componenti principali di Kubernetes:

  • Cluster: un piano di controllo e una o più sistemi di elaborazione, o nodi.
  • Piano di controllo: l'insieme di processi che controllano i nodi di Kubernetes. È il punto di origine di tutte le attività assegnate.
  • Kubelet: questo servizio eseguito sui nodi legge i manifesti del container e garantisce l'avvio e l'esecuzione dei container definiti.
  • Pod: un gruppo di uno o più container distribuiti su un singolo nodo. Tutti i container presenti in un pod condividono indirizzo IP, IPC, nome host e altre risorse.

Gli strumenti di orchestrazione dei container eseguono un ciclo di riconciliazione continuo (detto anche ciclo di controllo) che allinea costantemente lo stato reale alle istruzioni fornite.

Invece di impartire allo strumento comandi passo passo (metodo imperativo), devi fornire un modello che indica il risultato finale desiderato (metodo dichiarativo). L'unico compito dell'agente di orchestrazione è garantire che lo stato corrente dell'infrastruttura corrisponda sempre perfettamente al modello desiderato.

Quando si utilizza uno strumento di orchestrazione dei container come Kubernetes, la configurazione di un'applicazione viene descritta tramite un file YAML o JSON. Questo file indica allo strumento di gestione della configurazione dove trovare le immagini del container, come definire una rete e dove archiviare i registri.

Durante il deployment di un nuovo container, lo strumento di gestione dei container programma automaticamente il deployment in un cluster e individua l'host corretto tenendo conto di ogni requisito o limite indicato. Lo strumento di orchestrazione gestisce quindi il ciclo di vita del container in base alle specifiche determinate nel file di composizione.

I modelli Kubernetes possono essere utilizzati per gestire la configurazione, il ciclo di vita e la scalabilità delle applicazioni e dei servizi containerizzati. Sono modelli ripetibili necessari agli sviluppatori Kubernetes per creare sistemi completi. 

L'orchestrazione dei container può essere adottata in qualsiasi ambiente in cui vengono eseguiti i container, inclusi i server on premise e gli ambienti di cloud pubblico o privato.

Cos'è un deployment Kubernetes?

Red Hat è leader nello sviluppo di tecnologie open source per container e realizza inoltre strumenti strategici per proteggere, semplificare e aggiornare in modo automatico l'infrastruttura dei container.

Red Hat® OpenShift® permette agli sviluppatori di creare nuove applicazioni containerizzate, ospitarle e distribuirle nel cloud con i livelli di scalabilità, controllo e orchestrazione necessari per trasformare rapidamente le idee migliori in nuove opportunità di business. Se stai pensando di distribuire o spostare i carichi di lavoro Kubernetes su un servizio cloud gestito, OpenShift è disponibile anche come servizio cloud native su Amazon Web Services (AWS), Microsoft Azure, Google Cloud, IBM Cloud e altri provider.

Basandoti su OpenShift, puoi utilizzare insieme Red Hat Advanced Cluster Management e Red Hat Ansible® Automation Platform per distribuire e gestire in modo efficiente più cluster Kubernetes in diverse regioni e in ambienti diversi: cloud pubblici, on-premise e all'edge.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Introduzione all'architettura di Kubernetes

Una breve introduzione ai componenti di Kubernetes e alle modalità con cui interagiscono.

Cos'è un operatore Kubernetes?

Un operatore Kubernetes è un metodo che consente di creare il pacchetto di un'applicazione Kubernetes, eseguire il deployment dell'applicazione e gestirla estendendo la funzionalità dell'API Kubernetes.

Cos'è Kubernetes?

Kubernetes è una piattaforma di orchestrazione dei container che consente di eliminare molti processi manuali necessari per il deployment e la scalabilità delle applicazioni containerizzate.

Container: risorse consigliate

Articoli correlati