Rilascio di Kata Containers 3.2 con isolamento basato sulla virtualizzazione

È stato pubblicato il rilascio del progetto Kata Containers 3.2, che sviluppa uno stack per organizzare l'esecuzione dei contenitori utilizzando l'isolamento basato su meccanismi di virtualizzazione a tutti gli effetti. Il progetto è stato creato da Intel e Hyper combinando Clear Containers e le tecnologie runV. Il codice del progetto è scritto in Go e Rust ed è distribuito sotto la licenza Apache 2.0. Lo sviluppo del progetto è supervisionato da un gruppo di lavoro creato sotto gli auspici dell'organizzazione indipendente OpenStack Foundation, che comprende aziende come Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE e ZTE .

Kata si basa sul runtime, che consente di creare macchine virtuali compatte che funzionano utilizzando un hypervisor completo, invece di utilizzare contenitori tradizionali che utilizzano un kernel Linux comune e sono isolati utilizzando spazi dei nomi e cgroup. L'utilizzo di macchine virtuali consente di raggiungere un livello di sicurezza più elevato che protegge dagli attacchi causati dallo sfruttamento delle vulnerabilità del kernel Linux.

Kata Containers si concentra sull'integrazione nelle infrastrutture di isolamento dei container esistenti con la possibilità di utilizzare macchine virtuali simili per migliorare la protezione dei container tradizionali. Il progetto fornisce meccanismi per garantire la compatibilità delle macchine virtuali leggere con varie infrastrutture di isolamento dei contenitori, piattaforme di orchestrazione dei contenitori e specifiche come OCI (Open Container Initiative), CRI (Container Runtime Interface) e CNI (Container Networking Interface). Sono disponibili strumenti per l'integrazione con Docker, Kubernetes, QEMU e OpenStack.

L'integrazione con i sistemi di gestione dei container avviene tramite un layer che simula la gestione dei container, che accede all'agente di gestione nella macchina virtuale attraverso l'interfaccia gRPC e uno speciale proxy. All'interno dell'ambiente virtuale, lanciato dall'hypervisor, viene utilizzato un kernel Linux appositamente ottimizzato, contenente solo il set minimo di funzionalità necessarie.

Come hypervisor, supporta l'uso di Dragonball Sandbox (un'edizione di KVM ottimizzata per contenitori) con il toolkit QEMU, nonché Firecracker e Cloud Hypervisor. L'ambiente di sistema include un demone di inizializzazione e un agente. L'agente fornisce l'esecuzione di immagini del contenitore definite dall'utente in formato OCI per Docker e CRI per Kubernetes. Se utilizzato insieme a Docker, viene creata una macchina virtuale separata per ciascun contenitore, ad es. L'ambiente in esecuzione sull'hypervisor viene utilizzato per il lancio annidato di contenitori.

Rilascio di Kata Containers 3.2 con isolamento basato sulla virtualizzazione

Per ridurre il consumo di memoria, viene utilizzato il meccanismo DAX (accesso diretto al file system, bypassando la cache delle pagine senza utilizzare il livello del dispositivo a blocchi) e per deduplicare aree di memoria identiche, viene utilizzata la tecnologia KSM (Kernel Samepage Merging), che consente per organizzare la condivisione delle risorse del sistema host e connettersi a diversi sistemi guest condividere un modello di ambiente di sistema comune.

Nella nuova versione:

  • Oltre al supporto per l'architettura AMD64 (x86_64), vengono forniti rilasci per le architetture ARM64 (Aarch64) e s390 (IBM Z). Il supporto per l'architettura ppc64le (IBM Power) è in fase di sviluppo.
  • Per organizzare l'accesso alle immagini del contenitore, viene utilizzato il file system Nydus 2.2.0, che utilizza l'indirizzamento del contenuto per una collaborazione efficiente con le immagini standard. Nydus supporta il caricamento al volo delle immagini (download solo quando necessario), fornisce la deduplicazione dei dati duplicati e può utilizzare backend diversi per l'archiviazione effettiva. Viene fornita la compatibilità POSIX (simile a Composefs, l'implementazione Nydus combina le funzionalità di OverlayFS con il modulo EROFS o FUSE).
  • Il gestore delle macchine virtuali Dragonball è stato integrato nella struttura principale del progetto Kata Containers, che ora verrà sviluppato in un repository comune.
  • All'utilità kata-ctl è stata aggiunta una funzione di debug per la connessione a una macchina virtuale dall'ambiente host.
  • Sono state ampliate le funzionalità di gestione delle GPU ed è stato aggiunto il supporto per l'inoltro delle GPU ai contenitori per l'elaborazione riservata (Confidential Container), che fornisce la crittografia dei dati, della memoria e dello stato di esecuzione per la protezione in caso di compromissione dell'ambiente host o dell'hypervisor.
  • A Runtime-rs è stato aggiunto un sottosistema per la gestione dei dispositivi utilizzati in contenitori o ambienti sandbox. Supporta il lavoro con vfio, block, rete e altri tipi di dispositivi.
  • Viene fornita la compatibilità con OCI Runtime 1.0.2 e Kubernetes 1.23.1.
  • Si consiglia di utilizzare la versione 6.1.38 con patch come kernel Linux.
  • Lo sviluppo è stato trasferito dall'utilizzo del sistema di integrazione continua Jenkins a GitHub Actions.

Fonte: opennet.ru

Aggiungi un commento