EKS e Kubernetes managed β€” voce ainda escreve YAML, mas a AWS opera o control plane. Diferenca custa: ~$73/mes por cluster, networking via VPC CNI, autenticacao por IAM, IRSA para credenciais granulares.

Objetos essenciais β€” refresher

ObjetoO que fazQuando usar
DeploymentMantem N replicas de um Pod com rolling updateStateless apps (APIs, workers)
StatefulSetPods com identidade estavel + volume persistenteBancos, brokers (Kafka), Redis cluster
ServiceEndpoint estavel + load balance entre PodsSempre β€” Pod IPs sao efemeros
IngressHTTP routing externo β€” host/path β†’ ServiceExpor APIs HTTP/HTTPS
ConfigMapConfiguracao nao-secreta (env vars, files)Feature flags, URLs, settings
SecretDados sensiveis (base64, encrypted at rest)Connection strings, tokens β€” prefira IRSA
HorizontalPodAutoscalerEscala replicas por metric (CPU, memory, custom)Scaling reativo de Deployments
PodDisruptionBudgetGarante minAvailable durante drainProduction β€” evita rolling kills agressivos

Pod lifecycle β€” o que voce precisa saber

Quando o scheduler decide colocar um Pod num node, o ciclo e: Pending β†’ pull image β†’ ContainerCreating β†’ init containers β†’ main containers β†’ Running. Falhas comuns: ImagePullBackOff (ECR sem permissao ou tag errada), CrashLoopBackOff (app crasha na boot), Pending (sem capacity ou node selector errado).

Qual a diferenca entre Deployment e StatefulSet?
Deployment trata Pods como gado: nomes aleatorios, rolling update paralelo, qualquer Pod pode receber o trafego. StatefulSet da identidade estavel β€” db-0, db-1, db-2 β€” e bota up/down em ordem (one at a time), com um PersistentVolumeClaim por Pod. Use Deployment quando o servico e stateless e qualquer instancia serve qualquer request. Use StatefulSet quando ha estado persistente vinculado a uma identidade (replica de banco, broker, lider de cluster).