01 · OBJETIVO
Construir um cluster observável e administrável
Do namespace à exposição, observabilidade e GitOps.
02 · ARQUITETURA
Git → Argo CD → Kubernetes → Service → Ingress → Monitoring
03 · PRÉ REQUISITOS
Preparar o ambiente
- Cluster funcional.
- kubectl configurado.
- DNS e conectividade.
- Recursos adequados.
VALIDAÇÃO
kubectl cluster-info kubectl get nodes -o wide kubectl get pods -A
04 · NAMESPACES
Separar workloads
CRIAR
kubectl create namespace lab-app kubectl get namespace lab-app
05 · DEPLOYMENT
Publicar uma aplicação
COMANDOS
kubectl create deployment web-lab --image=nginx:stable -n lab-app kubectl scale deployment web-lab --replicas=2 -n lab-app kubectl rollout status deployment/web-lab -n lab-app
06 · SERVICE
Criar endpoint estável
SERVICE
kubectl expose deployment web-lab --name web-lab --port 80 --target-port 80 -n lab-app kubectl get svc,endpoints -n lab-app
07 · INGRESS
Expor a aplicação
Com Ingress Controller instalado, cria uma regra para um hostname de laboratório.
DIAGNÓSTICO
kubectl get ingress -A kubectl describe ingress -n lab-app kubectl get svc,endpoints -n lab-app
Em produção usa TLS válido e não exponhas dashboards administrativos.
08 · OBSERVABILIDADE
Prometheus e Grafana
Observa CPU, memória, reinícios e disponibilidade.
RECURSOS
kubectl top nodes kubectl top pods -A
09 · ARGO CD
Introduzir GitOps
Versiona manifestos e compara estado desejado com estado real.
VALIDAR
kubectl get pods -n argocd kubectl get applications -n argocd 2>/dev/null || true
10 · SEGURANÇA
Reduzir privilégios
- Evitar privileged.
- Requests e limits.
- RBAC mínimo.
- Service accounts separadas.
- NetworkPolicies.
- Não versionar segredos.
11 · EXERCÍCIO
Do Git até à aplicação
- Namespace.
- Deployment.
- Service.
- Ingress.
- Métricas.
- Alteração Git.
- Sync Argo CD.
- Documentar rollout.
12 · TROUBLESHOOTING
Diagnosticar por camadas
SEQUÊNCIA
kubectl get pods -n lab-app kubectl describe pod -n lab-app <pod> kubectl logs -n lab-app <pod> kubectl get svc,endpoints,ingress -n lab-app kubectl get events -n lab-app --sort-by=.lastTimestamp
13 · CHECKLIST
Critérios de conclusão
- Cluster saudável
- Deployment funcional
- Service com endpoints
- Ingress validado
- Métricas observáveis
- GitOps validado
- Segurança documentada