GUIA TÉCNICO · V12

Kubernetes Lab

Cluster, workloads, networking, observabilidade, GitOps e segurança operacional.

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

  1. Namespace.
  2. Deployment.
  3. Service.
  4. Ingress.
  5. Métricas.
  6. Alteração Git.
  7. Sync Argo CD.
  8. 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