Cos'è KubeVirt?
KubeVirt è un progetto open source che permette di eseguire, distribuire e gestire macchine virtuali (VM) avvalendosi di Kubernetes come piattaforma di orchestrazione alla base. Il processo di esecuzione delle macchine virtuali all'interno dei container è definito virtualizzazione container native. KubeVirt consente la virtualizzazione container native raggruppando le macchine virtuali all'interno dei container e gestendo entrambi i carichi di lavoro da un'unica console.
Con KubeVirt, le macchine virtuali si comportano come in un ambiente di virtualizzazione tradizionale, ma possono essere eseguite sulla stessa piattaforma dei microservizi containerizzati e delle applicazioni cloud native. Tutti i carichi di lavoro dell'ambiente, comprese le VM, usufruiscono della stessa infrastruttura, degli stessi strumenti e della stessa gestione Kubernetes.
KubeVirt è sponsorizzato dalla Cloud Native Computing Foundation (CNCF) ed è la base open source per Red Hat® OpenShift® Virtualization, una funzionalità di Red Hat OpenShift che supporta la migrazione e la gestione di macchine virtuali tradizionali su una piattaforma applicativa affidabile di cloud ibrido.
Come funziona KubeVirt?
KubeVirt estende l'interfaccia di programmazione delle applicazioni (API) di Kubernetes in modo che possa interagire con le macchine virtuali allo stesso modo di altre risorse e strumenti Kubernetes. Questo consente ai container e alle macchine virtuali di condividere gli stessi cluster, nodi e reti.
La funzionalità aggiunta di KubeVirt è costituita da 3 componenti principali:
- Custom Resource Definition (CRD): una risorsa personalizzata è un oggetto che estende l'API Kubernetes o che consente di inserire la propria API in un progetto o in un cluster. Un file CRD, o di definizione delle risorse personalizzate, definisce il tipo di oggetto e permette al server API di gestire l'intero ciclo di vita. KubeVirt porta un CRD all'API Kubernetes che gli consente di gestire le macchine virtuali come se fossero altri oggetti Kubernetes (ad esempio dei pod).
- Controller: un controller è un insieme di distribuzioni in esecuzione sul cluster che forniscono un endpoint API per la gestione dei nuovi CRD KubeVirt.
- Agenti: gli agenti vengono eseguiti sui nodi di lavoro di un cluster per gestire le attività dei nodi correlate alla virtualizzazione.
KubeVirt può essere paragonato anche a un pod in esecuzione con una macchina virtuale basata su KVM al suo interno. In Kubernetes, un pod è un gruppo di container che vengono eseguiti simultaneamente e condividono le stesse risorse e KVM (Kernel based Virtual Machine) è una tecnologia open source che estende il kernel Linux® perché funga da hypervisor. Con KubeVirt, le istanze delle macchine virtuali vengono eseguite come pod. Questo consente di gestire gli stati delle VM come "arrestata", "in pausa" e "in esecuzione", nonché di eseguire operazioni come il provisioning, la pianificazione e la migrazione delle macchine virtuali.
Risorse da Red Hat
Le funzionalità di Kubevirt
Creazione delle macchine virtuali
Dalla riga di comando virtctl con il sottocomando "create vm" si possono creare macchine virtuali all'interno di un ambiente Kubernetes. È inoltre possibile controllare i tipi di istanza e le preferenze per gestire le configurazioni su più macchine virtuali contemporaneamente, tra cui l'impostazione dei profili delle prestazioni e la personalizzazione delle caratteristiche di runtime.
Gestione delle macchine virtuali
L'interfaccia a riga di comando (CLI) virtctl funziona insieme a kubectl, lo strumento a riga di comando standard di Kubernetes, per fornire azioni specifiche per la virtualizzazione per la gestione di macchine virtuali in un cluster Kubernetes. Con virtctl, l'amministratore di una macchina virtuale può svolgere svariate attività:
- Arrestare, avviare, riavviare e mettere in pausa le macchine virtuali.
- Gestire le immagini disco.
- Accedere alle console seriali, grafiche e ssh della macchina virtuale.
- Eseguire la migrazione tra i nodi.
L'orchestrazione e la pianificazione di Kubernetes forniscono più livelli di gestione per garantire il funzionamento regolare delle VM. Se si eseguono anche carichi di lavoro dei container, KubeVirt aiuta a gestire e monitorare container e VM da un unico piano di controllo.
Migrazione delle macchine virtuali
KubeVirt supporta più metodi di migrazione delle macchine virtuali, inclusa la migrazione in tempo reale, ovvero il processo che consiste nello spostare una macchina virtuale e creare una nuova mappa del suo storage da un host all'altro senza interrompere l'accesso alla macchina stessa. Questa è la scelta ottimale per le VM che richiedono tempi di attività costanti poiché è possibile evitare interruzioni delle operazioni durante la migrazione tra nodi o piattaforme.
Utilizzo di nuove funzionalità e scalabilità
L'esecuzione di macchine virtuali su Kubernetes consente di sfruttare ulteriori funzionalità. Ad esempio, CDI (Containerized Data Importer) è una tecnologia compatibile che permette lo storage su disco per le VM KubeVirt e può gestire le risorse di storage.
Kubernetes offre inoltre adattabilità: considerando l'utilizzo crescente di nuove funzioni, l'aggiunta di nuove utilità ai carichi di lavoro e la modernizzazione progressiva delle applicazioni esistenti, ti permette di ampliare o ridurre tali risorse automaticamente in base all'utilizzo della CPU (Central Processing Unit).
I vantaggi di Kubevirt
Integrazione cloud native
KubeVirt consente di eseguire carichi di lavoro che non sono facilmente containerizzati insieme ad applicazioni e microservizi cloud native. I componenti delle applicazioni virtualizzate diventano parte di una piattaforma di sviluppo unificata in cui gli sviluppatori possono creare, gestire, distribuire e rendere scalabili le applicazioni, indipendentemente dal tipo dei componenti stessi: containerizzati, virtualizzati o una combinazione delle due opzioni.
Con KubeVirt, le macchine virtuali possono anche beneficiare dell'integrazione con varie funzionalità Kubernetes native, come il controllo degli accessi basato sui ruoli (RBAC), il monitoraggio e la registrazione integrati, service mesh e altro ancora.
Modernizzazione
La virtualizzazione permette di avviare e arrestare rapidamente diversi ambienti di sistema operativo su un unico componente hardware. Questo approccio offre una serie di vantaggi a un ecosistema IT, tra cui flessibilità, velocità e stabilità. Tuttavia, con l'evolversi delle piattaforme di virtualizzazione e il conseguente aumento dei costi, alcune aziende sono alla ricerca di nuove soluzioni. KubeVirt è un'opzione valida perché non solo funge da hypervisor, ma offre anche un percorso e una piattaforma per la modernizzazione.
Con KubeVirt si possono creare ed eseguire container e VM simultaneamente, ma si dispone anche di una piattaforma unificata su cui sviluppare nuove applicazioni e modernizzare i carichi di lavoro esistenti. Mano a mano che il tuo percorso di modernizzazione evolve, potrai sfruttare le risorse e le tecnologie necessarie per beneficiare delle innovazioni nello sviluppo cloud native, nell'intelligenza artificiale e nell'apprendimento automatico.
Funzioni avanzate e parità
Come progetto CNCF di livello Incubating, KubeVirt non solo viene messo a disposizione con le funzionalità avanzate native di Kubernetes, ma è anche costantemente migliorato e ampliato grazie ai contributi della community open source.
KubeVirt offre anche la parità delle funzioni con altre piattaforme di virtualizzazione aziendali, tra cui VMware vSphere e HyperV, in modo da poter eseguire le stesse attività a cui si è abituati in un ambiente di virtualizzazione tradizionale.
Prestazioni
KubeVirt è in grado di gestire i requisiti delle CPU in evoluzione e l'allocazione della memoria, con conseguente riduzione della latenza rispetto alle soluzioni di virtualizzazione tradizionali. Inoltre, semplifica il livello di astrazione tra hardware bare metal e ambienti di runtime per un utilizzo più efficiente delle risorse e prestazioni migliori.
Il gruppo di interesse speciale (SIG-scale) della community KubeVirt ha identificato la necessità di valutare le prestazioni e la scalabilità di questo strumento nelle varie versioni. Pertanto, ha sviluppato tecniche per monitorare la scalabilità di KubeVirt negli ambienti dei datacenter. I dati sulle prestazioni e sulla scalabilità vengono condivisi dopo ogni release.
Sicurezza integrata
KubeVirt usufruisce della sicurezza Kubernetes native, che garantisce l'applicazione coerente dei criteri in tutti gli ambienti, incluse le macchine virtuali. Consente agli utenti di specificare una singola configurazione, ad esempio un criterio di rete, da applicare a tutti i pod di una distribuzione, anziché dover configurare controlli a livello di sistema su ogni host di un cluster. Questa funzionalità semplifica la gestione della sicurezza delle macchine virtuali in modo coerente e scalabile.
Integrando i criteri nei sistemi CI/CD e nel framework del controller di ammissione Kubernetes, le organizzazioni possono applicare più facilmente i criteri di controllo nelle prime fasi del ciclo di vita dello sviluppo del software, prevenendo le esposizioni in fase di runtime.
KubeVirt e Red Hat
Red Hat OpenShift Virtualization è una piattaforma applicativa moderna basata su KubeVirt e KVM in grado di eseguire macchine virtuali e container in simultanea. Il toolkit per la migrazione delle macchine virtuali incluso fornisce gli strumenti necessari per eseguire la migrazione da una piattaforma di virtualizzazione tradizionale in pochi semplici passaggi. Red Hat Ansible® Automation Platform ti permette di accelerare ogni fase della distribuzione, dalla scalabilità della migrazione alle attività di manutenzione e correzione. Con Red Hat Advanced Cluster Management for Kubernetes puoi monitorare la sicurezza e le prestazioni delle VM da un'unica console. Con ulteriori opzioni di supporto e integrazioni dei partner per lo storage, il backup e il ripristino di emergenza e le reti, puoi affidarti a Red Hat per ottenere l'ottimale funzionamento della tua infrastruttura virtuale nel cloud ibrido e avviare il tuo percorso di modernizzazione con la giusta preparazione.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.