# Kata Containers: basi, funzionamento e campi di applicazione

Kata Containers è un progetto portato avanti da una community open source indipendente che collabora per combinare i vantaggi di un sistema a container con quello di semplici [macchine virtuali](https://www.ionos.it/digitalguide/server/know-how/macchine-virtuali/ "Macchine virtuali").

Vi spieghiamo cosa si nasconde dietro a questo progetto e come funziona nel dettaglio Kata Containers. Inoltre vi informeremo sui **vantaggi e svantaggi** e sugli **scenari di sviluppo** più amati dei container dal tempo di esecuzione sicuro.

## Cos’è Kata Containers?

Dalla sua nascita nel dicembre del 2017, il progetto Kata Containers ha l’obiettivo di sviluppare **macchine virtuali il più leggere** possibile, che funzionino come un container nel look and feel. I container di Kata sono semplici da usare, molto compatibili, riescono a processare un carico di lavoro molto alto e dispongono inoltre di un **elevato standard di sicurezza.** Per questo la community punta a un forte isolamento verso l'esterno, e verso l’interno a una [tecnologia di virtualizzazione](https://www.ionos.it/digitalguide/server/configurazione/virtualizzazione/ "Virtualizzazione") hardware che rappresenta la seconda linea di difesa.

Il progetto Kata Containers è finanziato e gestito dalla **OpenStack Foundation** (OSF), che lotta per lo sviluppo e l’introduzione di un’infrastruttura di cloud computing aperta nel mondo. Per questo motivo, il codice di condotta della OSF rappresenta un importante orientamento per il lavoro collettivo della community open source. Il codice del progetto è [ospitato da GitHub](https://github.com/kata-containers "Directory GitHub di Kata Containers") con una **licenza Apache 2.** Del comitato di Kata fanno parte anche grandi aziende come Google e Microsoft.

La OpenStack Foundation ha messo a disposizione su Youtube la seguente presentazione della durata di 30 minuti che spiega il progetto Kata Containers nel dettaglio:

## Come funziona Kata Containers?

Che aspetto hanno di preciso l'architettura e il funzionamento dei container di Kata? Per rispondere a questa domanda, bisogna risalire alle origini del progetto. Nel dicembre del 2017, la community è riuscita a ricongiungere e scalare le componenti migliori di **Intel Clear Containers** (progetto di Intel per container di Linux più sicuri) **con Hyper runV** (tempo di esecuzione basato sulla componente Hypervisor per l’iniziativa di un progetto open container). In poche parole: le prestazioni di Intel si incontrano sulla piattaforma indipendente di Hyper.

Uno dei punti più importanti di ciascun sistema di container è la **sicurezza**. Poiché i container possono essere sovrapposti o stratificati, l'aspetto della sicurezza è spesso difficile da garantire. Perciò sia Intel che Hyper, sebbene con percorsi diversi ma con risultati simili, aspirano a un alto livello di flessibilità nell'**area dei container**. La **stratificazione semplice dei formati di container** come [Kubernetes](https://www.ionos.it/digitalguide/server/know-how/che-cose-kubernetes/ "Che cos'è Kubernetes?") è possibile su OpenStack o viceversa così come la **stratificazione complessa** è possibile sia da Kubernetes su OpenStack che su Kubernetes. Questa flessibilità nella struttura dell'architettura desiderata semplifica enormemente l’utilizzo di Kata Containers senza dover necessariamente rinunciare alla sicurezza.

Kata permette di realizzare sia un **isolamento della VM a livello del container** che un **isolamento del container attraverso la virtualizzazione dell'hardware.** Nel caso di Kubernetes, l’isolamento della VM non è disponibile a livello di container, ma a livello di [Podman](https://www.ionos.it/digitalguide/server/tools-o-strumenti/tutorial-su-podman/ "Tutorial su Podman") o di pod, perché Kubernetes usa il termine pod invece di container. Per semplificare il tutto, però, parleremo anche più avanti di container.

---

### Consiglio

L’impostazione e l'esecuzione di sistemi di container può essere molto complessa, poiché di solito, per diversi computer, devono essere messi a disposizione molti container. [Managed Kubernetes](https://cloud.ionos.it/managed/kubernetes "Managed Kubernetes") di IONOS vi permette di pianificare, organizzare, mettere a disposizione i vostri **container** in modo semplice e **scalarli liberamente**.

---

## Aspetto dell'architettura di Kata Containers

Il credo della community è di ottenere la massima semplicità e questo si rispecchia anche nell'architettura di Kata Containers, che prevede principalmente le sei componenti seguenti:

1. Agent
2. Runtime
3. Proxy
4. Shim (estensione per la compatibilità della rispettiva applicazione)
5. Kernel (sistema operativo)
6. Collegamento con QEMU 2.9 (software di virtualizzazione gratuito)

[![Immagine: Grafico: Architettura/Struttura di Kata Containers](https://www.ionos.it/digitalguide/fileadmin/_processed_/3/5/csm_EN-kata-containers-1_f3f40a52ff.webp "Grafico: Architettura/Struttura di Kata Containers")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/EN-kata-containers-1.png) L'architettura di Kata Containers che mostra in una sola immagine la sua funzione flessibile e la compatibilità con Docker, Kubernetes e OpenStack.       Queste caratteristiche fanno di Kata un progetto indipendente, molto compatibile e al tempo stesso molto sicuro. Oltre a x86\_64, l'architettura può supportare anche AMD64, ARM e l’IBM system p e l’IBM system z. Inoltre Kata Containers permette anche **di utilizzare più hypervisor**, come QEMU, NEMU e Firecracker. È possibile anche l'integrazione nel [progetto containerd](https://containerd.io/ "Progetto Containerd").

### Compatibilità

Kata 1.10 è compatibile con [Docker](https://www.ionos.it/digitalguide/server/configurazione/tutorial-di-docker/ "Tutorial di Docker") Community Edition, ma supporta anche tutti gli altri standard industriali come il formato container OCI, le interfacce CRI di Kubernetes e altre tecnologie di virtualizzazione più datate tra cui la [CRI-O](https://www.ionos.it/digitalguide/server/know-how/cri-o-cose/ "CRI-O: cos’è?") (1.10 commit 393429 respektive CRI-Containerd version 1.0.0) o la OCI Runtime Specification (v1.0.0-rc5).

Tra i sistemi operativi supportati, che permettono il funzionamento di Kata Containers, ci sono:

- CentOS (7)
- Debian (9, 10)
- Fedora (28, 29, 30)
- Ubuntu (16.04, 18.04)
- Red Hat Enterprise Linux (7)
- OpenSUSE (Leap, Tumbleweed)

### Differenze rispetto ai container tradizionali

Il vantaggio più grande dei container di Kata è il **rapporto tra semplicità e prestazioni.** Non è più necessario l’annidamento di container in macchine virtuali, perché la community utilizza interfacce standard, che ne semplificano enormemente l'apertura e la chiusura. Le prestazioni hanno la stessa **coerenza** di un container standard di Linux, ma grazie al maggior isolamento, non compromettono le prestazioni di una macchina virtuale standard. Il grafico seguente mostra una panoramica della struttura vantaggiosa.

[![Immagine: Grafico: Differenza tra i container Kata e i container tradizionali](https://www.ionos.it/digitalguide/fileadmin/_processed_/b/8/csm_EN-kata-containers-2_873cc6fb42.webp "Grafico: Differenza tra i container Kata e i container tradizionali")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/EN-kata-containers-2.png) Kata offre un ulteriore isolamento con una macchina virtuale leggera e kernel individuali, mentre i container tradizionali isolano soltanto attraverso il namespace e condividono un kernel comune.       In questo modo il progetto open source raggiunge il suo scopo nel settore dei container liberi, le cui componenti si comportano come container, ma offrono le **prestazioni e la sicurezza di VM**. In questo modo i container di Kata concretizzano la riflessione iniziale dei container, riguardo ad esempio la scalabilità.

### Sicurezza

I container tradizionali sono leggeri, rapidi e possono essere integrati in modo semplice. Questo, però, aumenta i rischi di sicurezza, in particolare quando si trovano in un singolo sistema operativo. Quando i container dividono tra loro un kern, un path I/O, la stessa rete e la stessa memoria, basta **attaccarne uno solo per danneggiare allo stesso tempo tutti gli altri.**

I contenitori di Kata si comportano in modo del tutto diverso: la macchina virtuale opera in un **kernel dedicato** (kern del sistema operativo) attraverso il quale i processi vengono separati sia da quelli della rete e di I/O che da quelli della memoria. Oltre al forte isolamento già presente, può essere utilizzato anche l’isolamento rafforzato dall’hardware con estensioni di virtualizzazione VT.

## Vantaggi e svantaggi di Kata Containers

Ci sono tanti punti a favore di questo ambizioso progetto open source della OpenStack Foundation. Anche [Clear Linux](https://www.ionos.it/digitalguide/server/know-how/clear-linux-os/ "Clear Linux OS") (Intel) ha abbandonato la sua tecnologia di container originaria e supporta già con successo i container di Kata. Di seguito i principali vantaggi:

- ottima compatibilità
- uso semplice
- prestazioni elevate
- standard di sicurezza elevati

Un altro vantaggio è il **basso consumo energetico**, anche in caso di prestazioni elevate.

Kata però non è una distribuzione adatta a tutti gli scopi. Si tratta di un sistema specifico con **limiti condizionati solo in parte da alcuni principi.** Tra questi si trovano le operazioni che una macchina virtuale non permette, ma anche limitazioni che dovrebbero essere risolte negli aggiornamenti futuri. Una lista precisa dei limiti è fornita della community nella [documentazione ufficiale su GitHub](https://github.com/kata-containers/documentation/blob/master/Limitations.md "Repository GitHub di Kata Containers"). Al momento Kata Containers è disponibile esclusivamente per le distribuzioni di Linux.

Un altro svantaggio da non sottovalutare: Kata è ancora agli esordi. Ma la base tecnica è già promettente e utilizzata in modo versatile.

## Come si utilizzano i container di Kata?

Come già detto all’inizio, la community si attiene al codice di condotta della OSF che prevede, tra le varie cose, una **gestione aperta di tutto il progetto**, in particolare del codice sorgente. Questa apertura è data in particolare dal legame di entrambi i codebase open source integrati e virtualizzati. Tra i numerosi supporter troviamo ad esempio Kubernetes, Docker, OCI, CRI, CNI, QEMU, [KVM](https://www.ionos.it/digitalguide/server/know-how/che-cose-kvm/ "Che cos’è KVM?") e [OpenStack](https://www.ionos.it/digitalguide/server/tools-o-strumenti/che-cose-openstack/ "Che cos’è OpenStack?").

Clear Containers e runV, che rappresentano la base tecnica di Kata Containers, sono utilizzati in tutto il mondo da grandi aziende, come ad esempio JD.com, una **piattaforma di e-commerce cinese dal fatturato altissimo**.

Di solito Kata Containers funziona al meglio, dove sono richiesti container che non devono operare su un kernel singolo. Tra questi troviamo i settori applicativi come l’integrazione e il deployment continui (CI/CD), **[edge computing](https://www.ionos.it/digitalguide/server/know-how/edge-computing/ "Edge computing")**, funzioni di rete virtualizzate come [Containers-as-a-Service (CaaS)](https://www.ionos.it/digitalguide/server/know-how/caas-i-migliori-servizi-contenitore-a-confronto/ "CaaS: i migliori servizi contenitore a confronto"). Per di più, Kata si addice anche alle implementazioni di nicchia, poiché non esiste nessun altro container così semplice, sicuro, flessibile e in grado di risparmiare così tante risorse.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/know-how/kata-containers/](https://www.ionos.it/digitalguide/server/know-how/kata-containers/) for AI/LLM consumption.