Operators Live in the Past: Designing Reliable Kubernetes Controllers
summary
Operators read from a stale cache and that causes real race conditions at scale (examples: 600k containers, 20 controllers, 13 CRDs, clusters with 1,000 controllers). Use resource versions and optimistic concurrency, make reconciliations idempotent, prefer deterministic naming and spec-hash checks over brittle DeepEqual, and avoid holding all secrets in memory by using labels/namespaces and predicates. Build lean controllers with Kubebuilder or Operator SDK, enforce one operator per application, set requests/limits, and use server-side apply to avoid read‑modify‑write conflicts.
AI-written summary · about
chapters (7)
- 0:00Kubernetes operators intro
- 10:35What operators are
- 17:32Operator internals deep dive
- 25:19Building operators with Kubebuilder
- 32:45Designing reliable operators
- 41:10Managing reconciliation loops
- 45:21Conclusion and key takeaways
related talks
34mWriting a Kubernetes Operator: the Hard Parts
36mEssential Patterns For Designing And Implementing Your Operator
16mUnconference Session: Reliable K8s Operator: How to Survive Eventual Consistency
55mIntroduction to Kubernetes Operators
24mKubernetes Operators with Go
32mMinimalist Best Practices in Kubernetes Operators
31mIt's all about reconciliation - anatomy of a kubernetes controller
45mKubernetes Operators: Operating Cloud Native services at scale
