O princípio mais fundamental do Kubernetes. Tudo — Deployments, Services, HPAs, Karpenter — funciona com o mesmo loop: observe → diff → act → repita.
O controller lê o estado atual do cluster via API Server. Ex: ReplicaSet controller conta quantos Pods com seus labels estão Running.
// Controller observa via watch
informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: controller.enqueue,
UpdateFunc: controller.enqueue,
DeleteFunc: controller.enqueue,
})Você diz QUAL é o estado desejado, não COMO chegar lá. 'Quero 3 réplicas' — o K8s descobre como fazer.
Se um pod morrer, o controller detecta a divergência e cria um novo. Não há 'modo manual' — o loop nunca para.
Aplicar o mesmo manifest N vezes tem o mesmo resultado que aplicar 1 vez. Safe to retry.
Deployment, HPA, cert-manager, Karpenter, ArgoCD — todos usam o mesmo padrão. Entendeu um, entendeu todos.