DEV Community

Monica Hillman for Magalu Cloud

Posted on

Como criar e escalar workloads Kubernetes com Container Registry na Magalu Cloud

Imagine um cenário bem comum: seu time mantém uma API (por exemplo, checkout-api) e um worker de processamento assíncrono (por exemplo, order-worker). Em dias normais, 2 réplicas da API dão conta. Mas em promoções, campanhas ou picos sazonais, o tráfego sobe rápido, e você precisa:

  • publicar uma nova versão da aplicação com segurança (sem subir binário em VM na mão),

  • garantir que o cluster puxe a imagem correta (privada) com controle de acesso,

  • aumentar réplicas rapidamente para absorver carga,

  • e manter um fluxo simples para repetir isso toda semana (ou todo dia).

É exatamente aí que entram Container Registry + Kubernetes:

  • o Container Registry vira o “repositório oficial” de imagens da sua aplicação (com versionamento e permissão),

  • o Kubernetes executa essas imagens como workloads (Deployments/Pods) e permite escalar o número de réplicas de forma controlada.

Neste artigo, você vai aprender:

  • Como criar e usar o Container Registry da Magalu Cloud

  • Como autenticar Docker e Kubernetes no registry

  • Como criar workloads Kubernetes usando imagens privadas

  • Como escalar workloads Kubernetes de forma simples


Pré-requisitos

  • Ter uma conta ativa na Magalu Cloud
  • Ter a CLI mgc instalada e configurada com suas credenciais
  • Ter um cluster Kubernetes criado na Magalu Cloud
  • Ter acesso ao kubectl configurado para o cluster
  • Ter o Docker (ou ferramenta compatível) instalado localmente

Visão geral da arquitetura

O fluxo básico é o seguinte:

  1. Criar um Container Registry
  2. Construir e publicar imagens no registry
  3. Executar workloads no Kubernetes usando essas imagens
  4. Escalar a aplicação conforme a necessidade

Esse modelo separa claramente:

  • build e versionamento (Container Registry)
  • execução e escalabilidade (Kubernetes)

O que é o Container Registry

O Container Registry da Magalu Cloud é o serviço responsável por armazenar e distribuir imagens de container utilizadas pelas aplicações. Ele funciona como um repositório central, compatível com o padrão OCI/Docker, onde o time publica as imagens geradas durante o processo de build e a partir do qual outros serviços, como o Kubernetes, conseguem consumi-las.

Na prática, o registry passa a ser a fonte oficial das imagens da aplicação. Cada versão gerada pode ser identificada por uma tag, permitindo controlar exatamente qual versão será executada em cada ambiente. Isso facilita o versionamento, o rollback e a padronização do processo de entrega.

Além disso, o Container Registry permite manter imagens privadas, garantindo que apenas usuários e serviços autorizados consigam acessá-las. Essa característica é essencial em ambientes de produção, onde o código da aplicação não deve ficar exposto em registries públicos.

Por fim, o serviço é integrado de forma direta ao Kubernetes da Magalu Cloud, possibilitando que os clusters façam o pull das imagens privadas de maneira segura e automatizada, sem a necessidade de soluções externas ou configurações complexas.


Criando um Container Registry

Antes de autenticar o Docker ou publicar imagens, é necessário criar um registry.

Esse recurso funciona como um namespace para organização das imagens.

Criar o registry via CLI

mgc container-registry registries create --name="meu-registry"
Enter fullscreen mode Exit fullscreen mode

Esse comando cria o registry e o associa à sua conta e região.

Listar registries existentes

mgc container-registry registries list
Enter fullscreen mode Exit fullscreen mode

Se já existir um registry, ele pode ser reutilizado.


Endpoints do Container Registry

O endpoint depende da região:

  • Brasil – Sudeste (br-se1)
container-registry.br-se1.magalu.cloud
Enter fullscreen mode Exit fullscreen mode
  • Brasil – Nordeste (br-ne1)
container-registry.br-ne1.magalu.cloud
Enter fullscreen mode Exit fullscreen mode

Esse endpoint será usado em:

  • docker login
  • docker push
  • manifests do Kubernetes

Autenticação no Container Registry

A autenticação utiliza credenciais específicas do serviço, distintas da conta principal da Magalu Cloud.


1. Listar credenciais do registry

mgc container-registry credentials list
Enter fullscreen mode Exit fullscreen mode

Esse comando retorna o usuário e a senha/token do Container Registry.


2. Autenticar o Docker localmente

Exemplo para br-se1:

docker login https://container-registry.br-se1.magalu.cloud
Enter fullscreen mode Exit fullscreen mode

Informe:

  • Usuário → retornado pela CLI
  • Senha → token retornado pela CLI

Após isso, o Docker estará autenticado para push e pull.


Publicando uma imagem no Registry

Fluxo típico de publicação:

# Construir a imagem
docker build -t meu-app:1.0.0 .
# Marcar a imagem com o registry
docker tag meu-app:1.0.0 \
container-registry.br-se1.magalu.cloud/meu-registry/meu-app:1.0.0
# Enviar a imagem
docker push container-registry.br-se1.magalu.cloud/meu-registry/meu-app:1.0.0
Enter fullscreen mode Exit fullscreen mode

Boas práticas:

  • use tags versionadas
  • evite sobrescrever latest em produção

Kubernetes na Magalu Cloud

O que é o Kubernetes gerenciado

O Kubernetes da Magalu Cloud é um serviço gerenciado que fornece um cluster pronto para execução de workloads containerizados, eliminando grande parte da complexidade operacional envolvida na administração de um ambiente Kubernetes.

Em vez de lidar diretamente com servidores, sistemas operacionais e componentes internos do cluster, o desenvolvedor passa a interagir com o Kubernetes de forma declarativa, por meio de manifests que descrevem como a aplicação deve ser executada.

A Magalu Cloud é responsável por gerenciar os principais componentes da plataforma, incluindo:

  • Plano de controle, que engloba serviços como API Server, agendador e controladores do Kubernetes

  • Infraestrutura subjacente, como nós de trabalho, capacidade computacional e disponibilidade do cluster

  • Integração com rede, permitindo que pods e serviços se comuniquem de forma padronizada dentro do ambiente

Com isso, o time não precisa se preocupar com tarefas como instalação do Kubernetes, atualizações de componentes, configuração inicial de rede ou manutenção do plano de controle.

O foco do desenvolvedor fica restrito ao que realmente importa no dia a dia:

  • definir Deployments, Services e outros recursos via YAML

  • versionar e atualizar aplicações com segurança

  • escalar workloads conforme a demanda

  • integrar o cluster com serviços da própria plataforma, como o Container Registry

Esse modelo reduz o esforço operacional e torna o uso do Kubernetes mais acessível, especialmente para times que querem adotar containers e orquestração sem assumir a complexidade completa de operar um cluster por conta própria.


Autenticação do Kubernetes no Container Registry

Para que o Kubernetes consiga baixar imagens privadas, é necessário criar um Secret do tipo docker-registry.

Criando o Secret

kubectl create secret docker-registry magalu-registry-secret \--docker-server=container-registry.br-se1.magalu.cloud \ --docker-username=<USUARIO_DO_REGISTRY> \ --docker-password=<SENHA_DO_REGISTRY> \ --docker-email=<SEU_EMAIL>
Enter fullscreen mode Exit fullscreen mode

Criando um workload Kubernetes

Exemplo de Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: meu-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: meu-app
  template:
    metadata:
      labels:
        app: meu-app
    spec:
      imagePullSecrets:
        - name: magalu-registry-secret
      containers:
        - name: app
          image: container-registry.br-se1.magalu.cloud/meu-registry/meu-app:1.0.0
          ports:
            - containerPort: 8080
Enter fullscreen mode Exit fullscreen mode

Aplicando o manifesto:

kubectl apply -f deployment.yaml
Enter fullscreen mode Exit fullscreen mode

Escalando workloads Kubernetes

Escalonamento manual via CLI:

kubectl scale deployment meu-app --replicas=4
Enter fullscreen mode Exit fullscreen mode

O Kubernetes cria ou remove pods automaticamente.


Atualizando versões da aplicação

Para atualizar a aplicação:

  1. Gere uma nova imagem
  2. Envie ao registry
  3. Atualize a tag no Deployment
image: container-registry.br-se1.magalu.cloud/meu-registry/meu-app:1.1.0
Enter fullscreen mode Exit fullscreen mode

Ao aplicar o manifesto, o Kubernetes executa um rolling update.


Conclusão

A integração entre Container Registry e Kubernetes na Magalu Cloud permite criar aplicações containerizadas de forma segura, escalável e padronizada.

Com esse modelo, você consegue:

  • Criar e organizar registries privados
  • Publicar imagens versionadas
  • Executar workloads Kubernetes
  • Escalar aplicações conforme a demanda

Tudo isso utilizando serviços gerenciados, integrados e operando sobre infraestrutura no Brasil.

Top comments (0)