banner
Centro notizie
Consegna immediata

Puoi usare Kubernetes senza Docker?

Jun 25, 2023

Getty Images/iStockphoto

L’emergere dei container ha generato interessanti possibilità per lo sviluppo di software e le operazioni dei carichi di lavoro nell’azienda moderna. Ma la drammatica crescita della popolarità dei container pone problemi per la gestione dei container che motori come Docker non sono in grado di gestire.

Piattaforme come Kubernetes affrontano queste complesse sfide di gestione dei contenitori attraverso l'automazione e l'orchestrazione. Kubernetes è una piattaforma gratuita ed efficace che supporta numerosi runtime di contenitori, incluso Docker Engine.

Poiché sia ​​Docker che Kubernetes sono apparsi all'inizio dell'era dei container, i due sono stati strettamente intrecciati per anni, al punto che a volte vengono citati in modo intercambiabile. Ma sebbene Docker e Kubernetes siano complementari, si tratta di tipi diversi di strumenti che servono a scopi distinti negli ambienti IT.

Un contenitore è un tipo specializzato di VM. Come ogni VM, un contenitore racchiude e gestisce il software, astraendolo dall'ambiente informatico sottostante di server, storage e reti. Questa astrazione semplifica lo spostamento di contenitori e VM tra ambienti informatici.

A differenza delle macchine virtuali, che includono un sistema operativo, i contenitori includono solo il codice e le dipendenze necessarie per eseguire il carico di lavoro del contenitore, come runtime, strumenti di sistema, librerie di sistema e impostazioni corrispondenti. Il risultato è un pacchetto agile ed efficiente in termini di risorse che può essere eseguito con pochi, se non nessuno, requisiti, indipendentemente dall'ambiente informatico.

I due componenti non inclusi in un contenitore sono il sistema operativo e il motore del contenitore. Il sistema operativo supporta il codice in esecuzione all'interno del contenitore e il motore del contenitore gestisce i meccanismi di caricamento ed esecuzione del contenitore stesso.

Un contenitore viene creato e archiviato come immagine del contenitore. Il richiamo di un contenitore carica il file immagine nel motore del contenitore, trasformando di fatto l'immagine in un contenitore in esecuzione. Questo confezionamento e questa astrazione garantiscono che un contenitore venga eseguito allo stesso modo su quasi tutte le infrastrutture.

Un motore di container è una piattaforma o un livello software necessario per caricare, eseguire e gestire i container. I motori dei container vengono spesso definiti hypervisor o sistema operativo per container perché occupano lo stesso livello dell'hypervisor in una VM.

Docker è uno dei numerosi motori di contenitori popolari. Una volta che Docker o un altro motore di container è disponibile su un computer, il sistema può caricare ed eseguire container al di sopra del livello del motore di container.

Docker offre le seguenti funzionalità chiave:

Il cuore di qualsiasi motore di container, incluso Docker, è il runtime del container. Un runtime di container svolge il lavoro pesante di caricamento ed esecuzione di container, nonché di implementazione di spazi dei nomi e cgroup o costrutti del sistema operativo logico per i container.

Sono disponibili numerosi runtime di contenitori, tra cui containerd, CRI-O, runC e Mirantis Container Runtime. Alcuni runtime incorporano funzionalità di livello superiore come il disimballaggio dei contenitori, la gestione e la condivisione delle immagini. Alcuni forniscono anche un'API per consentire agli sviluppatori di creare software che interagisce direttamente con il runtime.

I contenitori sono diventati estremamente popolari grazie alla loro facilità d'uso e all'ingombro informatico relativamente ridotto. I server aziendali possono ospitare decine o addirittura migliaia di contenitori che compongono applicazioni e servizi per l'azienda.

Ma il numero elevato e il breve ciclo di vita di molti container rappresentano una seria sfida per gli amministratori IT che devono distribuire e gestire manualmente flotte di container grandi e dinamiche. L'orchestrazione della distribuzione dei container e l'esecuzione della gestione in tempo reale richiedono strumenti altamente automatizzati.

Questo è il ruolo della piattaforma Kubernetes, a volte abbreviata in K8s. Sviluppato originariamente da Google, Kubernetes è uno strumento di automazione e orchestrazione open source che gestisce l'implementazione, il ridimensionamento e la gestione delle applicazioni containerizzate. Con Kubernetes, gli amministratori IT possono organizzare, pianificare e automatizzare la maggior parte delle attività necessarie per le architetture basate su container.