Virtualização em Kubernetes: Modernizando Infraestrutura tradicionais

KubeVirt
VMs
Openshift Virtualization
KubeVirt
VMs
Openshift Virtualization
KubeVirt
VMs
Openshift Virtualization

O intuito desse artigo é explorar como a virtualização em Kubernetes está transformando a forma como empresas gerenciam suas cargas e trabalho, permitindo a coexistência de máquinas virtuais tradicionais e containers em uma única plataforma unificada.

A virtualização tem sido a base da computação empresarial nas últimas décadas, mas com a ascensão dos containers e do Kubernetes, surgiu uma nova questão: como integrar workloads tradicionais baseados em VMs com a moderna arquitetura de containers? A resposta veio através de projetos como o KubeVirt e do OpenShift Virtualization, que trazem capacidades de virtualização nativas para o ecossistema Kubernetes.

Cenário Atual

Muitas organizações enfrentam o desafio de operar dois mundos paralelos: ambientes de virtualização tradicionais (VMware, Hyper-V, KVM) e plataformas modernas de orquestração de containers (Kubernetes). Essa dualidade gera diversos problemas:


  • Complexidade operacional:
    Equipes precisam gerenciar múltiplas plataformas com ferramentas, processos e habilidades distintas


  • Custos elevados:
    Manter as infraestruturas separadas aumenta significativamente os custos operacionais e de licenciamento


  • Migração gradual:
    Nem todas as aplicações podem ser conteinerizadas imediatamente, criando criando dependências em sistemas legados


  • Falta de padronização:

    Diferentes abordagens para networking, storage e segurança entre as plataformas


O que é virtualização em Kubernetes?

A Virtualização em Kubernetes permite executar máquinas virtuais completas dentro de um cluster Kubernetes, utilizando os mesmos conceitos, APIs e ferramentas usadas para gerenciar containers. Isso é possível através de tecnologias como:

KuberVirt

O KubeVirt é um projeto open source da CNCF (Cloud Native Computing Foundation) que adiciona capacidades de virtualização ao Kubernetes. Ele permite que você:

  • Execute VMs ao lado de containers no mesmo cluster

  • Use kubectl e outras ferramentas Kubernetes para gerenciar VMs

  • Aproveite recursos nativos do Kubernetes como scheduling, networking e storage para VMs

  • Migre gradualmente workloads de VMs para containers

OpenShift Virtualization

O OpenShift Virtualization (anteriormente chamado de Container-native Virtualization) é a implementação enterprise do KubeVirt pela Red Hat, totalmente integrada ao Red Hat OpenShift. Diferentemente do KubeVirt standalone, o OpenShift Virtualization vai muito além, oferecendo uma solução completa e pronta para produção em ambientes corporativos.

  • Virtualização completamente gerenciada através da interface web do OpenShift

  • Suporte para live migration de VMs entre nodes

  • Integração como o OpenShift Data Foundation para storage persistente

  • Ferramentas de conversão e importação de VMs existentes

  • Disaster recovery para VMs usando Red Hat Advanced Cluster Management

  • Integração profunda com o Ecossistema OpenShift


O OpenShift Virtualization transforma o KubeVirt de um projeto open source promissor em uma plataforma enterprise completa, testada e suportada, eliminando as lacunas que normalmente existem entre uma ferramenta de código aberto e uma solução pronta para ambientes de produção críticos. Para organizações que buscam não paenas tecnologias, mas também garantias, suporte e uma experiência integrada, o OpenShift Virtualization se destaca como a escolha mais robusta para unificar containers e máquinas virtuais em uma única plataforma.

Principais benefícios da Virtualização em Kubernetes

Plataforma unificada

Ao consolidar VMs e container em uma única plataforma, as organizações obtêm:

  • Gestão simplificada: Uma única interface para gerenciar toda a infraestrutura

  • Redução de custos: Elimina a necessidade de múltiplas licenças e ferramentas de gerenciamento

  • Equipe unificada: Uma única equipe pode gerenciar tanto VMs quanto containers

Migração Gradual

A virtualização em Kubernetes permite uma transição suave de ambientes legados:

  • Migre aplicações para Kubernetes sem refatoração imediata

  • Execute VMs e container lado a lado durante o período de transição

  • Containerize aplicações no seu próprio ritmo, sem pressão de prazos

Consistência Operacional

Todos os recursos do Kubernetes estão disponíveis para VMs:

  • Networking: CNI plugins, Services, Ingress e NetworkPolicies

  • Storage: PersistentVolumes, StorageClasses e CSI drivers

  • Segurança: RBAC, Pod Security Standards, NetworkPolicies

  • Observabilidade: Prometheus, Grafana, logging centralizado

Modernização da Infraestrutura

Aproveite recursos modernos de cloud-native para VMs tradicionais:

  • Auto-scaling horizontal e vertical

  • Self-healing e restart automático

  • GitOps e Infrastructure as Code

  • CI/CD pipelines para VMs

Casos de Uso Comuns

A virtualização em Kubernetes resolve problemas reais que as empresas enfrentam diariamente. Vamos explorar os cenários mais comuns onde essa tecnologia realmente brilha.

Aplicações Legadas

Um dos maiores desafios na jornada de modernização é lidar com aplicações críticas que não podem ser conteinerizadas rapidamente. Imagine um sistema ERP customizado desenvolvido há 15 anos, que roda em um kernel Linux específico e possui dependências profundas no sistema operacional. Refatorar essa aplicação para containers poderia levar meses ou anos, com riscos significativos ao negócio.

Com a virtualização em Kubernetes, você não precisa escolher entre modernizar sua infraestrutura ou manter aplicações críticas funcionando. As principais vantagens são:

  • Compatibilidade total: VMs mantêm dependências de sistema operacional, requisitos de kernel customizados e licenciamento vinculado ao hardware

  • Modernização gradual: Aproveite benefícios da plataforma moderna (auto-healing, scheduling inteligente, observabilidade unificada) sem refatoração imediata

  • Redução de riscos: Ganhe tempo para planejar uma eventual migração para microserviços sem pressão

Bancos de Dados Stateful

Embora seja possível executar bancos de dados em containers, muitas organizações preferem VMs para bancos críticos e de alto volume transacional. O motivo é simples, controle e previsibilidade.

Em uma VM, você tem controle total sobre recursos de sistema, pode otimizar parâmetros de kernel específicos e garantir que não haverá "vizinhos barulhentos" competindo por I/O. Além disso, muitas equipes de DBA têm décadas de experiência operando bancos de dados em ambientes virtualizados, conhecendo profundamente as ferramentas de backup, procedimentos de recuperação e estratégias de tuning.

Ambientes de Desenvolvimento e Teste

Desenvolvedores precisam de ambientes flexíveis e isolados. Com virtualização em Kubernetes, provisionar VMs se torna tão simples quanto criar um Pod. Através de templates pré-configurados e GitOps, um desenvolvedor pode:

  • Subir ambientes completos em minutos para diferentes sistemas operacionais

  • Simular ambientes de produção complexos com múltiplas VMs interconectadas

  • Destruir ambientes quando terminar, sem desperdiçar recursos

Empresas que adotam essa abordagem relatam aumento significativo na produtividade, eliminando esperas de dias por provisionamento e tornando tudo self-service e rastreável via Git.

Windows Workloads

Muitas organizações têm investimentos significativos em aplicações .NET Framework, Active Directory, Exchange e todo um ecossistema Windows. O KubeVirt e o OpenShift Virtualization suportam VMs Windows, permitindo clusters híbridos onde aplicações Linux modernas em containers conversam nativamente com serviços Windows legados em VMs.

Por exemplo, uma aplicação web em Go rodando em containers pode consultar uma API REST também em containers, que se comunica com Active Directory em VM para autenticação. Tudo no mesmo cluster, com as mesmas ferramentas e políticas de segurança.

Arquitetura

Para entender como a virtualização funciona dentro do Kubernetes, é importante conhecer os componentes que harmonizam dois mundos aparentemente incompatíveis: a natureza efêmera dos containers com a persistência das máquinas virtuais.

Componentes Principais

No coração da arquitetura está o KVM (Kernel-based Virtual Machine), o hypervisor de código aberto do Linux amplamente usado em datacenters. O KubeVirt cria uma ponte inteligente entre o KVM e o Kubernetes através de componentes especializados:

  • virt-handler: Agente executado em cada node que monitora e orquestra as VMs

  • libvirt: Biblioteca que abstrai a complexidade de interagir com o hypervisor

  • QEMU: Emulador que efetivamente executa as VMs

Recursos Kubernetes Customizados

Do ponto de vista do Kubernetes, uma VM é definida através de Custom Resources nativos, mantendo a filosofia declarativa da plataforma:

  • VirtualMachine: Declaração de estado desejado da VM (similar a um Deployment)

  • VirtualMachineInstance: Representa uma VM em execução (análogo a um Pod)

  • VirtualMachineInstanceReplicaSet: Gerencia múltiplas instâncias de VMs

  • DataVolume: Gerencia volumes de dados para VMs

Networking e Storage

O networking é elegante: por padrão, as VMs recebem IPs do mesmo pool que os Pods, permitindo comunicação nativa via Service Discovery e DNS do Kubernetes. Para casos avançados, há opções como bridge networking para redes externas, SR-IOV para alta performance, e Multus CNI para múltiplas redes simultaneamente.

O armazenamento segue a mesma filosofia de integração: qualquer storage que funciona com Kubernetes através do CSI automaticamente funciona com VMs, incluindo soluções modernas como Ceph, OpenShift Data Foundation, ou storage de cloud providers.

Comparação com Virtualização Tradicional

A virtualização tradicional (VMware vSphere, Microsoft Hyper-V) dominou o mercado nas últimas duas décadas com tecnologias maduras e testadas em milhões de ambientes. Essas plataformas oferecem recursos sofisticados de alta disponibilidade, vMotion, Distributed Resource Scheduler e um ecossistema rico de ferramentas enterprise.

Principais Diferenças

Virtualização Tradicional traz maturidade comprovada, ferramentas robustas e suporte extensivo, mas com custos de licenciamento elevados e a complexidade de manter dois mundos paralelos: VMs e containers são gerenciados por equipes diferentes, com ferramentas distintas e processos separados.

Virtualização em Kubernetes inverte essa equação oferecendo unificação. Você gerencia tudo através do kubectl, define infraestrutura como código usando manifestos YAML, aplica as mesmas políticas de RBAC para VMs e containers, e usa ferramentas de observabilidade unificadas. Para organizações já comprometidas com Kubernetes, a curva de aprendizado é mínima e os benefícios de simplificação operacional são significativos.

É importante reconhecer que a virtualização em Kubernetes é mais recente e alguns recursos avançados ainda estão em desenvolvimento. O ecossistema de terceiros é menor. Mas para organizações que já têm containers em produção e querem expandir essa plataforma para workloads tradicionais, faz sentido estratégico: você reduz custos, simplifica operações e se posiciona melhor para o futuro.

Migrando de Ambientes Tradicionais

A migração de VMs de plataformas tradicionais para Kubernetes é uma jornada que deve ser pragmática e gradual, não um big bang.

Processo de Migração

1. Avaliação: Comece identificando quais aplicações são candidatas à migração. Nem toda VM precisa migrar. Priorize baseado em valor de negócio, complexidade técnica e dependências.

2. Preparação: Seu cluster Kubernetes precisa estar adequadamente dimensionado e configurado. O storage precisa ser provisionado e testado, as redes mapeadas e configuradas, e as políticas de segurança definidas antes de tocar na primeira VM de produção.

3. Migração: Com OpenShift Virtualization e o Migration Toolkit for Virtualization (MTV), o processo pode ser surpreendentemente simples. A ferramenta migra VMs de VMware vSphere, Red Hat Virtualization e outros, lidando com conversão de discos e adaptação de configurações. Mas automatizado não significa infalível - cada VM migrada deve ser exaustivamente testada.

4. Otimização: Após a migração, monitore performance de perto, ajuste a alocação de recursos e identifique quais VMs migradas poderiam ser conteinerizadas. A virtualização em Kubernetes não deve ser o estado final, mas uma ponte para modernização completa.

Ferramentas e Ecossistema

O ecossistema em torno da virtualização em Kubernetes está em expansão, com ferramentas que facilitam cada aspecto do ciclo de vida das VMs.

Gerenciamento

No OpenShift, o Web Console se destaca como uma interface completa para gerenciar VMs. Não é apenas monitoramento, é uma ferramenta onde você pode criar VMs através de wizards intuitivos, conectar consoles VNC pelo navegador, gerenciar snapshots e monitorar recursos em tempo real.

Para linha de comando, o virtctl complementa o kubectl com operações específicas de VMs (iniciar, parar, conectar ao console serial, pausar, resumir). O kubectl padrão continua funcionando perfeitamente, já que VMs são recursos Kubernetes.

Migração e Importação

O Migration Toolkit for Virtualization (MTV) automatiza a migração de centenas de VMs. Você conecta sua infraestrutura VMware ou RHV, mapeia redes e storage, e a ferramenta cuida do resto. Complementando, há o virt-v2v para conversões low-level entre hypervisors e o CDI (Containerized Data Importer) para importar imagens de VM.

Monitoramento e Backup

Prometheus coleta métricas das VMs automaticamente, Grafana fornece dashboards informativos, e no OpenShift, o stack de monitoramento já vem integrado e pré-configurado.

Para backup e DR, Velero é o padrão de mercado, funcionando perfeitamente com VMs. No OpenShift, o OADP (OpenShift API for Data Protection) adiciona facilidade de uso. Para ambientes enterprise, Kasten K10 oferece políticas sofisticadas de proteção de dados e recuperação granular.

Futuro da Virtualização em Kubernetes

O futuro da virtualização em Kubernetes é promissor e evolui rapidamente. Se você acompanha os roadmaps do KubeVirt e OpenShift Virtualization, fica claro que estamos apenas começando.

Tendências Principais

Performance é foco contínuo, com otimizações em cada release para reduzir overhead. Técnicas como vhost-user para networking de alta velocidade, passthrough de dispositivos PCI e otimizações no scheduler são constantemente refinadas.

Recursos enterprise estão sendo rapidamente adicionados. Live migration está ficando mais inteligente com políticas automáticas baseadas em utilização. Disaster recovery evolui com replicação assíncrona entre sites. Storage melhora com snapshots consistentes e clonagem eficiente.

GPU e aceleração é particularmente excitante com o boom da IA. Ambas plataformas investem em facilitar alocação de GPUs para VMs, compartilhamento entre múltiplas VMs e vGPU para maximizar utilização.

Edge computing cresce à medida que workloads migram para a borda. Distribuições leves de Kubernetes com virtualização eficiente permitirão cenários antes impossíveis em ambientes com recursos limitados.

Certificações de ISVs aumentam conforme a tecnologia amadurece. Mais vendors certificam suas aplicações para rodar em VMs no Kubernetes, reduzindo o risco percebido e facilitando adoção enterprise.rilha. Migrar centenas de VMs manualmente seria impraticável, mas o MTV automatiza todo o processo. Você conecta sua infraestrutura VMware ou RHV, mapeia redes e storage, e a ferramenta cuida do resto. Há também o virt-v2v, uma ferramenta de linha de comando mais low-level para conversões entre diferentes hypervisors, e o CDI (Containerized Data Importer), que facilita a importação de imagens de VM para dentro do Kubernetes.

Monitoramento é onde a integração com o ecossistema Kubernetes realmente se destaca. Prometheus coleta métricas das VMs automaticamente, desde CPU e memória até estatísticas de disco e rede. Grafana fornece dashboards lindos e informativos que permitem visualizar toda sua infraestrutura em um único painel. No OpenShift, o stack de monitoramento já vem totalmente integrado e pré-configurado, o que elimina horas de trabalho de setup.

Para backup e disaster recovery, Velero é praticamente o padrão de mercado para Kubernetes, e funciona perfeitamente com VMs. No OpenShift, o OADP (OpenShift API for Data Protection) adiciona uma camada adicional de integração e facilidade de uso. Para ambientes enterprise que exigem features mais avançadas, Kasten K10 oferece políticas sofisticadas de proteção de dados, backup application-aware e recuperação granular.

Conclusão

A virtualização em Kubernetes representa uma evolução natural na jornada de modernização de infraestrutura. Ao invés de forçar uma migração abrupta de VMs para containers, ela oferece um caminho pragmático que permite às organizações:

  • Consolidar infraestrutura e reduzir custos

  • Modernizar operações mantendo compatibilidade com aplicações legadas

  • Adotar práticas cloud-native gradualmente

  • Preparar a infraestrutura para o futuro

Para organizações que buscam modernizar sua infraestrutura sem descartar investimentos existentes, a virtualização em Kubernetes oferece o melhor dos dois mundos: a flexibilidade e eficiência dos containers com a compatibilidade e estabilidade das máquinas virtuais.

Se você está considerando essa abordagem, recomendo começar com um projeto piloto, migrar workloads não-críticos primeiro e gradualmente expandir conforme a equipe ganha experiência com a plataforma.

Maria Julia Germano | Consultora de Middleware


Referencias: