Databases on Kubernetes Using a Custom Operator: Day 1, Day 2, and Beyond
summary
Built a managed Neo4j service that runs for a year on GKE, using a custom Go operator that manages a CRD, creates three-node statefulsets with GKE persistent volumes, runs incremental backup workers, and preserves raft leaders via a rollout that temporarily increases quorum to achieve zero-downtime rolling updates. Operator logic splits into ordered mini-reconcilers, tests with k8s fakes and integration checks, uses canary databases and chaos tests, and shards responsibility via operator sharding by number to avoid mass rollouts.
AI-written summary · about
chapters (33)
- 0:00Introduction
- 0:50Hands Up
- 1:17Panama Papers
- 1:44League of Law
- 3:11Formula One Drivers
- 3:37Neo4J
- 3:50NASA
- 4:14Database as a Service
- 4:48Single Instance
- 6:16Clusters
- 6:35Management Services
- 7:44Kelsey Hightower
- 8:12Kubernetes only solves half of a problem
- 8:41Services and operational experience
- 8:51Cluster technology
- 10:52Operator building
- 11:55Controller logic
- 13:34Reconciliation logic
- 13:46Miniconciliation
- 14:45Main Reconciliation
- 16:23CID Example
- 16:53Sewer Heal Example
- 17:52Updating a Database
- 20:09Updating the Operator
- 22:57Conditions
- 25:06Sitecast
- 26:51Troubleshooting
- 28:00Testing
- 28:53Integration Tests
- 29:37System Integration Tests
- 29:53Automated Turn Tests
- 30:28Recap
- 31:07Questions
related talks
44mDatabases on Kubernetes: Why You Should Care!
45mDatabases on Kubernetes: Why you should care
34mIntroduction to Kubernetes Operators for Databases
21mStory of a Kubernetes Go Operator
48mPostgreSQL in Kubernetes: Operation - Day 2
50mThe hell of SQL DBs on Kubernetes versus the promise of operators
08mLightning Talk: Should You Run Your Database on Kubernetes
35mOrchestrating Resilient Data: Harnessing the Strength of Kubernetes with Operators
