ULC Lab · implementação reproduzível
Laboratório: Cluster Kubernetes Local com Minikube, Deploy de Aplicação e Monitoramento com Prometheus
Você terá um cluster Kubernetes funcional em uma máquina local, rodando uma aplicação web de exemplo e monitorada pelo Prometheus. O laboratório leva cerca de 2 horas.

- Duração estimada
- 120 min
- Passos
- 13
- Validações
- 5
- Versões da documentação consultada
- Minikube a versão estável atual · kubectl a versão estável atual · Docker a versão estável atual · Prometheus a versão estável atual
Este laboratório ensina como criar um cluster Kubernetes local usando Minikube, realizar o deploy de uma aplicação containerizada, expor o serviço para acesso externo e implementar monitoramento básico com Prometheus. O objetivo é experimentar, do zero, o ciclo de vida de uma aplicação resiliente em Kubernetes, incluindo troubleshooting e validações essenciais para ambientes de produção.
Topologia
Uma máquina local (192.168.56.10) roda Minikube, que cria um cluster Kubernetes single-node. Dentro do cluster, um deployment de aplicação web (exemplo: nginx) e um deployment do Prometheus. O serviço nginx é exposto via NodePort. O Prometheus coleta métricas do cluster e da aplicação.
┌─────────────────────────────┐
│ Máquina Local │
│ (192.168.56.10) │
│ ┌─────────────────────────┐ │
│ │ Minikube (Kubernetes) │ │
│ │ ┌───────────────┐ │ │
│ │ │ nginx Pod │ │ │
│ │ └───────────────┘ │ │
│ │ ┌───────────────┐ │ │
│ │ │ Prometheus │ │ │
│ │ └───────────────┘ │ │
│ └─────────────────────────┘ │
└─────────────────────────────┘Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| Notebook ou PC | 2 CPUs, 4 GB RAM, 20 GB disco, VirtualBox ou KVM instalado |
| Conexão de internet | Para baixar imagens e pacotes |
| Minikube | Apache 2.0 · a versão estável atual |
| kubectl | Apache 2.0 · a versão estável atual |
| Docker | Apache 2.0 · a versão estável atual |
| Prometheus | Apache 2.0 · a versão estável atual |
Roteiro
- Preparar o ambiente local
Instale Docker, Minikube e kubectl. Sem essas ferramentas, não há como orquestrar containers localmente.
Consulte https://minikube.sigs.k8s.io/docs/start/O que você deve ver: Comandos docker, minikube e kubectl disponíveis no terminal
- Iniciar o cluster Minikube
Crie um cluster Kubernetes single-node para simular um ambiente de produção reduzido.
minikube start --driver=virtualboxO que você deve ver: Mensagens indicando o download e inicialização do cluster
- Verificar o status do cluster
Confirme que o cluster está pronto antes de prosseguir.
kubectl get nodesO que você deve ver: Status 'Ready' para o nó do cluster
- Deploy de uma aplicação web de exemplo
Implemente um deployment nginx para servir como aplicação resiliente.
kubectl create deployment nginx --image=nginxO que você deve ver: Deployment criado
- Expor o serviço nginx via NodePort
Permita acesso externo à aplicação, simulando exposição em produção.
kubectl expose deployment nginx --type=NodePort --port=80O que você deve ver: Service criado
- Descobrir a porta NodePort
Identifique a porta externa para acessar o nginx.
kubectl get service nginxO que você deve ver: PORT(S) com valor 80:<NodePort>/TCP
- Testar acesso externo ao nginx
Acesse o serviço pelo IP do Minikube e porta NodePort.
minikube service nginx --urlO que você deve ver: URL de acesso ao nginx
- Deploy do Prometheus via manifest
Implemente o Prometheus para monitorar o cluster e aplicações.
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yamlO que você deve ver: Recursos do Prometheus criados
- Expor o Prometheus via NodePort
Permita acesso externo à interface do Prometheus.
kubectl expose deployment prometheus-operator --type=NodePort --port=8080O que você deve ver: Service criado
- Descobrir a porta NodePort do Prometheus
Identifique a porta externa para acessar o Prometheus.
kubectl get service prometheus-operatorO que você deve ver: PORT(S) com valor 8080:<NodePort>/TCP
- Acessar a interface do Prometheus
Abra o navegador e acesse o Prometheus para visualizar métricas.
minikube service prometheus-operator --urlO que você deve ver: Interface web do Prometheus acessível
- Simular falha e observar resiliência
Delete o pod nginx para observar o Kubernetes recriando o pod automaticamente.
kubectl delete pod -l app=nginxO que você deve ver: Novo pod nginx criado automaticamente
- Observar métricas do nginx no Prometheus
Verifique se o Prometheus está coletando métricas do nginx.
Consulte a interface do PrometheusO que você deve ver: Métricas relacionadas ao nginx disponíveis
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar status do cluster | kubectl get nodes | STATUS = Ready |
| Verificar pods em execução | kubectl get pods | nginx e prometheus-operator em Running |
| Acessar aplicação nginx externamente | curl <URL do nginx> | Retorno do HTML padrão do nginx |
| Acessar interface do Prometheus | curl <URL do Prometheus> | HTML da interface Prometheus |
| Verificar resiliência do deployment | kubectl delete pod -l app=nginx | Novo pod criado automaticamente |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| kubectl não conecta ao cluster | Minikube não inicializado ou variáveis de ambiente não configuradas | Execute 'minikube start' e verifique 'kubectl config view' |
| Pods não entram em Running | Falta de recursos ou imagem não encontrada | Verifique 'kubectl describe pod <nome>' e ajuste recursos |
| Serviço NodePort inacessível | Firewall bloqueando porta ou IP errado | Use 'minikube service <serviço> --url' para obter URL correta |
| Prometheus não coleta métricas do nginx | nginx sem endpoint de métricas padrão | Implemente um exporter ou configure scrape no Prometheus |
| Erro ao aplicar manifest do Prometheus | Versão incompatível do Kubernetes | Consulte a documentação do Prometheus Operator para versão compatível |
Segurança e hardening
- Não exponha NodePorts em ambientes de produção sem autenticação
- Restrinja acesso às interfaces web via firewall
- Remova recursos criados após o laboratório para evitar exposição desnecessária
- Não use imagens de containers sem verificar a procedência
Checklist final
Referências
- Kubernetes - Getting Started with Minikube · Kubernetes (CNCF) (kubernetes.io)
- Kubernetes - Deployments · Kubernetes (CNCF) (kubernetes.io)
- Prometheus - Getting Started · Prometheus (CNCF) (prometheus.io)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 3 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
