
Incus è un gestore di container e macchine virtuali di nuova generazione, pensato per offrire un’esperienza simile a quella dei servizi cloud pubblici, ma direttamente su infrastruttura locale o privata. Il progetto nasce come alternativa comunitaria a LXD, sviluppato da Canonical, dopo che quest’ultimo è stato reso meno accessibile dalla comunità a seguito di cambiamenti nella licenza, passata dalla licenza Apache 2.0 alla licenza AGPLv3, una licenza copyleft più restrittiva. Incus è sviluppato in linguaggio Go (sviluppato da Google e noto per la sua semplicità, efficienza e capacità di gestire la concorrenza) distribuito come software libero sotto licenza Apache 2.0, e fa parte dell’organizzazione Linux Containers. Il codice sorgente è disponibile pubblicamente e la partecipazione allo sviluppo non richiede accordi legali particolari, ma solo la firma dei contributi secondo il DCO (Developer Certificate of Ownership).
Incus si distingue per la sua flessibilità e scalabilità: consente di gestire sia container che macchine virtuali, utilizzando la stessa infrastruttura di rete e dispositivi di memoria. Supporta immagini di numerose distribuzioni GNU/Linux, pubblicate quotidianamente, e può essere installata su una vasta gamma di sistemi, dal portatile al server rack. La gestione delle istanze avviene tramite una CLI (Command Line Interface) intuitiva, API REST o strumenti di terze parti. Incus offre funzionalità avanzate come backup, snapshot, migrazione delle istanze, gestione di diversi backend di storage, controllo granulare delle risorse e passthrough di dispositivi come USB, GPU e dischi.
Incus è multi-piattaforma: il client è disponibile anche per Windows e macOS, mentre il server richiede una distribuzione GNU/Linux recente. La comunità fornisce pacchetti per molte distribuzioni, tra cui Alpine Linux, Arch Linux, Debian, Ubuntu, Fedora, Gentoo, NixOS, openSUSE, Rocky Linux e Void Linux. Inoltre, è disponibile come container Docker e il client può essere utilizzato ovunque sia supportato il linguaggio Go.
La versione LTS, acronimo di Long Term Support (supporto a lungo termine), attuale è la versione Incus 6.0, supportata fino a giugno 2029. Le versioni con nuove funzionalità vengono pubblicate circa ogni mese e ricevono supporto fino all’uscita della versione successiva. Infatti, la versione precedente, Incus 6.11, è uscita a fine marzo 2025.
Novità in Incus 6.12
Incus 6.12 introduce una serie di miglioramenti richiesti dagli amministratori e ottimizzazioni delle prestazioni, con particolare attenzione alla gestione dinamica delle risorse e alla sicurezza di rete.
Aumento dinamico della memoria RAM nelle macchine virtuali
Una delle novità più attese è la possibilità di aumentare la memoria RAM assegnata a una macchina virtuale senza doverla riavviare. Prima di questa versione, Incus permetteva solo di ridurre dinamicamente la memoria (funzionalità nota come “ballooning”), mentre l’aumento richiedeva il riavvio della macchina virtuale, a differenza dei container che già supportavano la modifica delle risorse durante l’esecuzione. Ora, grazie al supporto del “memory hot-plug”, basta aumentare il valore del limite di memoria (limits.memory) e la macchina virtuale rileva immediatamente i nuovi gigabyte disponibili, senza interruzioni di servizio.
Gestione avanzata delle regole di sicurezza di rete (ACL)
Le liste di controllo degli accessi di rete (ACL, Access Control List) sono state migliorate con l’introduzione dell’astrazione “address-set”. Questa funzione consente di raggruppare indirizzi IPv4 e IPv6 sotto un’etichetta specifica per progetto, che può essere poi richiamata nelle regole ACL. In questo modo, è possibile gestire gruppi di indirizzi in modo centralizzato e riutilizzarli in più regole, evitando la duplicazione e semplificando la manutenzione delle configurazioni di sicurezza.
Inoltre, per le configurazioni con bridge di rete, è ora possibile eseguire la traduzione degli indirizzi di origine (SNAT, Source Network Address Translation) per i pacchetti in uscita dalle istanze, in modo che corrispondano all’indirizzo e alla porta pubblica utilizzati per l’inoltro delle porte esterne (ad esempio 80/443) verso servizi interni su porte diverse. Questo permette una gestione più coerente e sicura del traffico in uscita.
Sistema di logging modulare e configurabile
Il sistema di registrazione degli eventi e dei log è stato completamente rinnovato per garantire una maggiore flessibilità e adattabilità. In precedenza, Incus permetteva di inviare i log esclusivamente al syslog locale o a un singolo punto di raccolta Loki, un sistema dedicato alla gestione dei log. Con la nuova architettura basata su plug-in, è ora possibile configurare destinazioni multiple per la registrazione dei log, consentendo di scegliere tra Loki e il syslog tradizionale.
Gli amministratori di sistema hanno la possibilità di selezionare le classi di eventi da inviare a ciascuna destinazione, come eventi legati al ciclo di vita delle istanze, accessi alle liste di controllo degli accessi (ACL) o righe di log generiche. Possono inoltre definire il livello di severità da associare a ogni evento, migliorando la gestione dei dati registrati. Questa funzionalità risulta particolarmente vantaggiosa in ambienti di grandi dimensioni, dove si può configurare l’invio del traffico di debug a un cluster Loki per analisi dettagliate, mentre il syslog può essere riservato agli avvisi e agli errori critici, garantendo una gestione più chiara e sicura del traffico in uscita e un monitoraggio ottimizzato dell’infrastruttura.
Ottimizzazioni della CLI e delle prestazioni
Il client a riga di comando di Incus 6.12 include ora il supporto per il filtraggio lato server applicabile a istanze, immagini, volumi personalizzati e profili. Questa funzionalità permette di delegare al demone Incus la selezione delle informazioni rilevanti, eliminando la necessità di scaricare elenchi completi per poi filtrarli localmente. Il risultato è una significativa riduzione del traffico di rete e un minore carico sul database SQLite, particolarmente vantaggioso in ambienti con host ad alta attività.
Sono stati riportati significativi miglioramenti delle prestazioni per configurazioni che includono un gran numero di snapshot e per utenti che impiegano ZFS come sistema di archiviazione. Sebbene non siano stati divulgati dati quantitativi specifici, chi opera in ambienti di sviluppo caratterizzati da molti snapshot potrà riscontrare una maggiore velocità di risposta nelle operazioni di avvio e nella visualizzazione delle istanze, migliorando l’efficienza complessiva del sistema.
Per ulteriori dettagli sulle modifiche introdotte nel contenitore Incus 6.12 e nel gestore delle macchine virtuali, è possibile fare riferimento all’annuncio ufficiale del rilascio di Incus 6.12 o consultare il changelog (registro delle modifiche) completo.
Gli utenti sono invitati a esplorare le nuove funzionalità visitando la piattaforma online di Incus, che offre un’esperienza diretta e pratica con l’ultima versione disponibile. Questo approccio consente di valutare i miglioramenti in modo approfondito e interattivo.
Fonte: https://discuss.linuxcontainers.org/t/incus-6-12-has-been-released/23556
Fonte: https://github.com/lxc/incus/releases/tag/v6.12.0
Fonte: https://linuxiac.com/incus-6-12-container-and-virtual-machine-manager-released/
Source: Read More