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
mgcinstalada e configurada com suas credenciais - Ter um cluster Kubernetes criado na Magalu Cloud
- Ter acesso ao
kubectlconfigurado para o cluster - Ter o Docker (ou ferramenta compatível) instalado localmente
Visão geral da arquitetura
O fluxo básico é o seguinte:
- Criar um Container Registry
- Construir e publicar imagens no registry
- Executar workloads no Kubernetes usando essas imagens
- 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"
Esse comando cria o registry e o associa à sua conta e região.
Listar registries existentes
mgc container-registry registries list
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
- Brasil – Nordeste (br-ne1)
container-registry.br-ne1.magalu.cloud
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
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
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
Boas práticas:
- use tags versionadas
- evite sobrescrever
latestem 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>
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
Aplicando o manifesto:
kubectl apply -f deployment.yaml
Escalando workloads Kubernetes
Escalonamento manual via CLI:
kubectl scale deployment meu-app --replicas=4
O Kubernetes cria ou remove pods automaticamente.
Atualizando versões da aplicação
Para atualizar a aplicação:
- Gere uma nova imagem
- Envie ao registry
- Atualize a tag no Deployment
image: container-registry.br-se1.magalu.cloud/meu-registry/meu-app:1.1.0
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)