CNCF

Talk · Cloud Native Gandhinagar

Abstracting the Abyss:
How to Run Production Data
Workloads on Any Kubernetes Cluster

Sergey Pronin Solanica

Agenda

What We'll Cover Today

  • 01 3 doors for running data in your organization
  • 02 The inception of Cloud Native
  • 03 Getting Kubernetes production-ready for data
  • 04 Running production databases on Kubernetes
  • 05 Intro to OpenEverest

Three Paths

3 Doors for Running Data in Your Org

Door 1

Managed Services

RDS, MongoDB Atlas, Cloud SQL…

  • Fast to get started
  • Vendor handles operations
  • Expensive at scale
  • Locked into one cloud
Door 2

Legacy & DIY

Custom scripts, VMs, bare metal…

  • Full control over setup
  • Requires a dedicated DBA team
  • Manual, error-prone processes
  • Hard to scale consistently
Door 3

Cloud Native

Kubernetes Operators, GitOps…

  • Runs on any infrastructure
  • Operations as code
  • No vendor lock-in
  • Day-2 ops automated

Door 1 · Managed Services

The Golden
Cage

Managed databases feel easy — until you start scaling. Then the hidden costs and constraints start to show.

RDS, MongoDB Atlas, Cloud SQL, PlanetScale, Neon…

Vendor Lock-in

Your data, their APIs, their region list, their outage schedule. Migrating out is painful and expensive.

Unpredictable Costs

Bills that grow non-linearly with traffic. Egress fees. Storage markups. Per-connection pricing surprises.

Limited Control

Can't tune storage drivers, OS configs, or networking. You get what they expose — nothing more.

Data Sovereignty

Regulated industries can't always let a third party hold the data. Compliance becomes your problem.

Door 2 · Legacy & DIY

The Hidden Tax of
Doing It Yourself

Full control sounds great — until your database expert leaves and no one knows how the provisioning script works.

Ticket-driven Provisioning

Developers open a ticket. A DBA creates the database. Days pass. Everyone is frustrated.

Zombie Scripts

Bash scripts and Ansible playbooks written years ago. Nobody wants to touch them. They "just work" — until they don't.

Knowledge Silos

One person knows the replication setup. Another knows the backup cron. Nobody knows both.

Doesn't Scale

10 databases: manageable. 100 databases: chaos. The linear growth of effort kills the team.

Incident-driven Ops

No automated failover. Failover is a 2 AM phone call, a runbook, and adrenaline.

Upgrade Paralysis

Upgrading PostgreSQL 13 → 16? That's a project, not a task. So it gets deferred indefinitely.

Door 3 · Cloud Native

Enter Kubernetes —
The Unifier

One API. Any infrastructure. Kubernetes became the platform for building platforms — and it runs everywhere.

Infrastructure agnostic — AWS, GCP, Azure, bare metal, your laptop
Declarative by nature — describe desired state, let the system converge
Extensible — CRDs and operators let you teach K8s any domain
Platform for platforms — DBaaS, ML pipelines, dev portals — all on K8s
P Public Cloud
O On-Premises
Kubernetes
one control plane
H Hybrid
E Edge

The Myth vs. Reality

"Kubernetes is for stateless apps. Don't run databases there."

Kubernetes has grown up.
Data workloads belong.

2014

Kubernetes 1.0 — Stateless first

Deployments and ReplicaSets designed for ephemeral, interchangeable pods. Storage was an afterthought.

2016

StatefulSets & PersistentVolumes

Stable network identities, ordered deployment, and persistent storage. The first real foundation for data.

2018

Storage Classes & CSI Drivers

Dynamic provisioning, volume snapshots, local NVMe support. Cloud-grade storage on any backend.

2019+

Operators — domain knowledge as code

PostgreSQL, MySQL, MongoDB, Redis — all managed by operators that encode DBA expertise into the control loop. This is where it gets interesting.

Cloud Native Databases

Kubernetes Operators: The Game Changer

CUSTOM RESOURCE kind: PostgresCluster replicas: 3 storage: 50Gi backup: daily haMode: sync version: "16.2" watches OPERATOR CONTROLLER ① Watch API Server ② Compare ③ Reconcile continuous reconciliation loop creates & manages StatefulSet 3 pods · ordered PersistentVolumeClaims × 3 replicas Services primary · replica · headless Secrets + ConfigMaps creds · tuning CronJob scheduled backups DAY-2 OPERATIONS — ENCODED BY THE OPERATOR, RUN BY KUBERNETES Auto Failover Backups & PITR Scale Replicas Rolling Upgrades Metrics & Alerts The operator is a DBA encoded in software — it knows your database, not just Kubernetes.