Entenda a transição dos hipervisores legados (como VMware vSphere) para plataformas de virtualização unificadas que rodam VMs e Containers dentro do Kubernetes usando KubeVirt e KVM. Por Fabio Silva.
🔄 A Mudança de Paradigma na Infraestrutura
Durante anos, empresas mantiveram duas pilhas de infraestrutura separadas: um cluster VMware/Hyper-V para máquinas virtuais tradicionais e um cluster Kubernetes para containers. Com o projeto CNCF KubeVirt, as VMs passam a ser tratadas como recursos nativos do Kubernetes (CRDs).
🏗️ Como o KubeVirt Funciona sob o Capô?
- Pod Wrapper com libvirt/KVM: Cada Máquina Virtual roda dentro de um Pod especial, onde o container executa o processo QEMU/KVM de baixo nível.
- Rede Declarativa via Multus CNI: Permite conectar a VM diretamente a redes VLANs físicas L2 ou a redes internas de microsserviços.
- Armazenamento Persistente via CSI: As imagens de disco da VM utilizam Persistent Volume Claims (PVC) provisionados por Ceph, Longhorn ou SANs.
📄 Declarando uma VM no Kubernetes (`vm.yaml`)
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: ubuntu-legacy-app
spec:
running: true
template:
spec:
domain:
devices:
disks:
- name: containerdisk
disk:
bus: virtio
resources:
requests:
memory: 4Gi
cpu: 2
volumes:
- name: containerdisk
containerDisk:
image: kubevirt/ubuntu-cis-benchmarked:22.04
Artigo originalmente publicado por Fabio Silva — Arquiteto de Soluções em Cloud, DevOps e IA Generativa.