Uscita di Kata Containers 3.4 con isolamento basato su virtualizzazione

È stata pubblicata la versione 3.4 del progetto Kata Containers, che sviluppa una stack per l'esecuzione di container utilizzando l'isolamento basato su meccanismi di virtualizzazione completi. Il progetto è stato creato dalle aziende Intel e Hyper attraverso la fusione delle tecnologie Clear Containers e runV. Il codice del progetto è scritto nei linguaggi Go e Rust ed è distribuito con licenza Apache 2.0. Lo sviluppo del progetto è supervisionato da un gruppo di lavoro, istituito sotto l'egida dell'organizzazione indipendente OpenInfra Foundation, che include aziende come Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE e ZTE.

Alla base di Kata c'è un runtime che consente di creare macchine virtuali compatte, eseguite utilizzando un hypervisor completo, anziché utilizzare tradizionali container che condividono il kernel Linux e sono isolate tramite namespace e cgroups. L'applicazione di macchine virtuali permette di raggiungere un livello di sicurezza superiore, proteggendo da attacchi derivanti dall'utilizzo di vulnerabilità nel kernel Linux.

Kata Containers è orientato all'integrazione nelle infrastrutture di isolamento dei contenitori esistenti, con la possibilità di utilizzare macchine virtuali simili per aumentare la protezione dei contenitori 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 quali 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 contenitori avviene tramite uno strato che simula la gestione del contenitore, il quale accede all'agente di controllo nella macchina virtuale attraverso un'interfaccia gRPC e un proxy speciale. All'interno dell'ambiente virtuale, avviato dal hypervisor, viene utilizzato un kernel Linux appositamente ottimizzato, contenente solo un insieme minimo di funzionalità necessarie.

Come hypervisor è supportato l'uso di Dragonball Sandbox (edizione KVM, ottimizzata per i container) con gli strumenti QEMU, così come Firecracker e Cloud Hypervisor. L'ambiente di sistema include un demone di inizializzazione e un agente (Agent). L'agente garantisce l'esecuzione di immagini container specificate dall'utente in formato OCI per Docker e CRI per Kubernetes. Quando utilizzato insieme a Docker, viene creato un environment separato per ogni container la macchina virtuale, cioè l'ambiente eseguibile sopra il hypervisor è applicato per l'esecuzione nidificata dei container.

Uscita di Kata Containers 3.4 con isolamento basato su 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 dei dispositivi a blocchi), e per la deduplicazione delle aree di memoria identiche viene applicata la tecnologia KSM (Kernel Samepage Merging), consentendo così la condivisione delle risorse del sistema host e la connessione a diversi sistemi ospiti tramite un modello comune dell'ambiente di sistema.

Per facilitare l'accesso alle immagini dei container, è stata utilizzata la file system Nydus, che implementa l'indirizzamento basato sul contenuto per una cooperazione efficace con immagini standard. Nydus supporta il caricamento delle immagini al volo (caricando solo quando necessario), garantisce la deduplicazione dei dati ripetuti e può utilizzare diversi backend per l'archiviazione effettiva. È fornita la compatibilità con POSIX (analogamente a Composefs, l'implementazione di Nydus combina le capacità di OverlayFS con EROFS o un modulo FUSE).

Nella nuova versione:

  • Nel gestore di macchine virtuali Dragonball è stata aggiunta la supporto per il collegamento a caldo della GPU e la possibilità di utilizzare i registri MTRR (Memory-Type Range Registers) per gestire l'accesso alle aree di memoria fisica.
  • Nel runtime-rs, l'implementazione del runtime in Rust, è stata garantita una gestione completa dei thread, pid e tid, ed è stato revisionato il driver qemu, utilizzato sui sistemi con architettura s390 (IBM Z).
  • Aggiornato il servizio per la creazione di snapshot utilizzando il file system Nydus.
  • Nel servizio di gestione delle immagini dei container è stata aumentata l'efficienza nell'uso della memoria.
  • È stato attivato di default il montaggio della gerarchia cgroups-v2 durante l'avvio tramite systemd.
  • È stata aggiunta la possibilità di definire un timeout per limitare il tempo di acquisizione di immagini molto grandi nei sistemi guest.
  • È stato aggiunto il supporto per la compilazione dell'agente OPA (Open Policy Agent) per le architetture ppc64le e s390x.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster