Voltar

Kubernetes multi-tenant com GPU fracionada: Kamaji e HAMi testados em hardware simulado

Aprofundamento CEVIU

Aprofundamento

O problema é conhecido de quem opera GPU em Kubernetes. Um cluster por time significa pagar por um control plane por equipe. Um cluster único compartilhado entrega isolamento fraco. E o scheduler padrão trata a GPU como placa inteira, então um pod que precisa de 4 GB numa placa de 80 GB bloqueia o resto.

A proposta combina dois projetos. O Kamaji roda o control plane de cada tenant como pods dentro de um cluster de gerenciamento. O HAMi permite pedir fatias de GPU (memória em MB, compute em %). O ponto de integração é o mais delicado: o API server do tenant fica no cluster de gerenciamento, mas o webhook do HAMi roda no worker do tenant. Toda criação de pod com GPU depende do API server alcançar o tenant pelo túnel Konnectivity do Kamaji. Se esse salto falhar, os pods caem no scheduler padrão e o HAMi nunca os vê. No teste, funcionou de primeira.

O autor usou o mock device plugin do HAMi, sem GPU física, com duas configurações: tenant-a com uma A100 de 80 GB (81.920 MB, 100 cores) e tenant-b com duas L4 de 24 GB. Os oito testes passaram. Três pods de 20.000 MB e 30% dividiram a mesma placa. Um quarto pod de 30% ficou Pending por excesso de cores, e um pedido de 90.000 MB ficou Pending com CardInsufficientMemory. Cada tenant enxergou só o próprio worker, pods e capacidade de GPU.

Há limites claros. O laboratório não prova isolamento em runtime: sem limites reais de memória e compute, sem carga CUDA, sem dados de desempenho ou efeito de vizinho barulhento. O worker via contêiner kindest/node não é o caminho oficial do Kamaji, que indica kubeadm em máquinas reais ou Cluster API. E o mock plugin não libera o node lock do HAMi, que só expira em 5 minutos, então o autor liberou à mão. Ele classifica isso como artefato do mock, não bug do Kamaji ou do HAMi.

O que mudou

O HAMi já vinha sendo coberto pelo CEVIU. Em 17 de julho de 2026, o CEVIU noticiou "HAMi é Promovido a Projeto de Incubação da CNCF, Fortalecendo Virtualização de GPU no Kubernetes", e em 10 de agosto de 2026, "HAMi é incubado na CNCF e impulsiona compartilhamento de GPUs no Kubernetes". Naquelas matérias o foco era o fatiamento de GPU e o status do projeto. Agora aparece uma receita reproduzível que junta o HAMi a control planes hospedados do Kamaji.

Em 28 de agosto de 2026, a matéria "Fábrica de IA no Kubernetes: Maximizando GPUs com Isolamento e Open Source" já apontava os dois desafios, alta utilização de GPU e isolamento de tenants. O post de agora mostra uma implementação concreta, ainda em hardware simulado.

Por que isso importa

Para quem opera plataforma de GPU, a leitura é que dá para atacar custo de control plane e desperdício de placa ao mesmo tempo. Mas é um teste de encaixe e de decisões de agendamento, não de produção. Antes de levar a ideia adiante, vale validar em GPU real os limites de memória e compute e o efeito de vizinho barulhento, que o laboratório não cobre.

Linha do tempo

  1. CEVIU noticia a promoção do HAMi a projeto de incubação da CNCF.

  2. CEVIU noticia o HAMi incubado e o compartilhamento de GPUs no Kubernetes.

  3. CEVIU publica sobre fábrica de IA no Kubernetes, com foco em utilização de GPU e isolamento.

  4. Post testa Kamaji e HAMi juntos em hardware simulado, com oito testes passando.

Perguntas frequentes

O que o Kamaji faz nessa arquitetura?

Ele executa o control plane Kubernetes de cada tenant como pods dentro de um único cluster de gerenciamento. Assim cada time tem seu próprio API server sem precisar de máquinas dedicadas para o control plane. Cada tenant control plane tem quatro contêineres: kube-apiserver, kube-scheduler, kube-controller-manager e konnectivity-server.

Como o HAMi resolve o problema da GPU inteira?

O HAMi permite que o pod peça uma fatia da placa, com memória em MB e compute em %. Ele agrupa vários pods na mesma GPU e recusa pedidos que estourem a capacidade. No teste, um pod pedindo 90.000 MB numa placa de 81.920 MB ficou Pending.

Dá para testar sem GPU física?

Sim, com o mock device plugin do HAMi. Você descreve placas falsas numa annotation do nó e o plugin registra a capacidade de gpumem e gpucores. Webhook, scheduler e lógica de quota rodam como em nós reais, mas não há limite de runtime nem teste de desempenho.

Essa configuração já serve para produção?

Não, segundo o próprio autor. O laboratório prova a integração e as decisões de agendamento, mas não o isolamento em runtime nem o desempenho com CUDA. O caminho de worker usado também não é o oficial do Kamaji.

Fontes

Avalie este artigo:
Categoria
CEVIU DevOps
Publicado
23 de outubro de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser