Fase 6: Cloud Bursting - overflow do DC para a AWS
Cenário complementar (não é resiliência, é elasticidade): a app da plataforma roda no DATACENTER e, sob pico de carga, transborda para a AWS. Simples e realista - sem GPU/LLM, apenas scheduling nativo do Kubernetes.
kubectl apply -f manifests/08-cloud-bursting.yaml
kubectl get pods -n demo-resilience -l app=burst-app -o wideAs 2 réplicas ficam no hybrid node (nodeAffinity preferred para on-prem).
# Simula o pico escalando a app
kubectl scale deploy burst-app -n demo-resilience --replicas=12
sleep 30
# Ver a distribuição: hybrid enche, o excedente vai pros cloud nodes
kubectl get pods -n demo-resilience -l app=burst-app -o wide \
--no-headers | awk '{print $7}' | sort | uniq -cPara ver pod a pod (agrupado por node - mi-* = on-prem, ip-* = cloud), saída compacta que cabe em terminal com split:
kubectl get pods -n demo-resilience -l app=burst-app \
-o custom-columns='POD:.metadata.name,NODE:.spec.nodeName' \
--sort-by=.spec.nodeNameResultado validado: ~7 pods permanecem no DC (hybrid), ~3 transbordam para os cloud nodes da AWS. O overflow é automático - preferred affinity, não required: o scheduler prefere on-prem, mas usa a nuvem quando o DC enche.
kubectl scale deploy burst-app -n demo-resilience --replicas=2Este demo usa cloud nodes já existentes (overflow). Em produção, para provisionar capacidade cloud SOB DEMANDA e destruir depois: Karpenter + Spot disparado por KEDA/Prometheus monitorando a carga local. É a mesma estratégia do sample oficial aws-samples/sample-eks-hybrid-nodes-gpu-burst-scaling, aplicável a workloads web (não só LLM). Pode ser uma demo dedicada.