Pulse 2025 Product Roundup: From Monitoring to AI-Native Control Plane

Read more

What is KubeDB?

KubeDB is an open-source Kubernetes operator and database management platform that simplifies running production-grade databases on Kubernetes. It automates the full lifecycle of database operations — provisioning, configuration, scaling, backup, recovery, and monitoring — using native Kubernetes primitives like Custom Resource Definitions (CRDs).

KubeDB treats databases as first-class Kubernetes citizens, allowing teams to manage them with the same kubectl-based workflows used for application deployments.

Key Features

Database Provisioning

KubeDB allows you to deploy databases by applying a YAML manifest, just like any other Kubernetes resource. It handles:

  • Automated pod scheduling and configuration
  • PersistentVolume provisioning for storage
  • Service creation for internal and external connectivity
  • Secret management for credentials

Supported Databases

KubeDB supports a wide range of databases, including:

  • Relational: PostgreSQL, MySQL, MariaDB, Microsoft SQL Server
  • NoSQL: MongoDB, Redis, Memcached, FerretDB
  • Search & Analytics: Elasticsearch, OpenSearch
  • Time-series: InfluxDB
  • Message queues: Apache Kafka, RabbitMQ, Solr, ZooKeeper
  • Columnar: SingleStore, Druid, ClickHouse

High Availability and Clustering

KubeDB automates the setup of highly available database clusters:

  • Replica sets and sharded clusters for MongoDB
  • Primary/replica setups for PostgreSQL, MySQL, and MariaDB
  • Cluster mode for Redis, Elasticsearch, and OpenSearch
  • Automatic leader election and failover

Backup and Recovery

KubeDB integrates with Stash (a Kubernetes-native backup solution) to provide:

  • Scheduled and on-demand backups to object storage (S3, GCS, Azure Blob, etc.)
  • Point-in-time recovery (PITR) for supported databases
  • Cross-cluster and cross-cloud restore
  • Backup policy management via Kubernetes CRDs

In-Place Version Upgrades

KubeDB supports rolling version upgrades with minimal downtime, managed through Kubernetes-native operations. This eliminates manual migration steps typically required for database version changes.

Horizontal and Vertical Scaling

Scaling databases is handled declaratively:

  • Horizontal scaling: Add or remove replicas or shards by updating the resource spec
  • Vertical scaling: Change CPU and memory requests/limits with automatic pod restarts

TLS/SSL Management

KubeDB integrates with cert-manager to automate TLS certificate provisioning and rotation for database connections, removing the need to manage certificates manually.

Monitoring Integration

KubeDB exposes database metrics compatible with Prometheus, enabling monitoring and alerting with standard Kubernetes observability stacks (Prometheus, Grafana, Alertmanager).

How KubeDB Works

KubeDB implements the Kubernetes Operator pattern. When you apply a database manifest (e.g., a PostgreSQL or MongoDB resource), the KubeDB operator:

  1. Reads the desired state from the custom resource
  2. Creates the necessary Kubernetes objects (StatefulSets, Services, ConfigMaps, Secrets)
  3. Continuously reconciles the actual state with the desired state
  4. Responds to changes (scaling, upgrades, configuration updates) by applying rolling operations

This approach ensures databases are self-healing: if a pod crashes, Kubernetes restarts it and the operator reconfigures it as needed.

Example: Deploying PostgreSQL with KubeDB

apiVersion: kubedb.com/v1
kind: Postgres
metadata:
  name: my-postgres
  namespace: demo
spec:
  version: "16.2"
  replicas: 3
  storageType: Durable
  storage:
    storageClassName: "standard"
    accessModes:
      - ReadWriteOnce
    resources:
      requests:
        storage: 10Gi
  deletionPolicy: WipeOut

Applying this manifest provisions a 3-node PostgreSQL cluster with persistent storage.

Benefits of Running Databases on Kubernetes with KubeDB

Unified Operations: Manage databases alongside application workloads using the same tools, CI/CD pipelines, and RBAC policies.

Declarative Configuration: Define database state in version-controlled YAML files, enabling GitOps workflows for database infrastructure.

Self-Healing: Kubernetes automatically restarts failed pods, and KubeDB reconciles database state to match the desired configuration.

Cost Efficiency: Co-locating databases with application workloads on shared Kubernetes clusters reduces infrastructure overhead compared to dedicated database servers.

Portability: Run the same database configurations on-premises, in the cloud, or across multiple cloud providers without vendor lock-in.

Consistent Backup Policies: Apply uniform backup and retention policies across all database types through a single Kubernetes-native interface.

Limitations and Considerations

Running stateful workloads like databases on Kubernetes introduces complexity:

  • Storage performance: Network-attached volumes can introduce latency compared to locally attached disks on bare-metal or VM-based deployments
  • Operational expertise required: Teams must understand both Kubernetes and database internals to troubleshoot production issues effectively
  • Resource isolation: Noisy neighbor problems can affect database performance in multi-tenant clusters without proper resource quotas and node affinity rules
  • Upgrade complexity: Despite automation, major version upgrades for stateful systems carry risk and require testing

KubeDB vs. Managed Cloud Databases

Aspect KubeDB on Kubernetes Managed Cloud Databases
Control Full control over configuration Limited by provider constraints
Cost Pay for Kubernetes nodes only Pay provider per-service pricing
Portability Cloud-agnostic Provider-specific
Operational burden Higher (requires Kubernetes expertise) Lower (provider manages infrastructure)
Compliance Run in your own environment Data leaves your infrastructure

KubeDB is most valuable for organizations that already operate Kubernetes at scale and want consistent, automated database management without relying on managed cloud database services.

Use Cases

Multi-Tenant Platforms

SaaS companies use KubeDB to provision isolated database instances per tenant on shared Kubernetes clusters, automating the full lifecycle from creation to deletion.

GitOps-Driven Infrastructure

Teams adopting GitOps use KubeDB manifests stored in Git to manage database provisioning as code, with automated reconciliation via tools like Argo CD or Flux.

On-Premises or Air-Gapped Environments

Organizations in regulated industries or with air-gapped networks deploy KubeDB to get managed-database-like automation without depending on cloud provider services.

Development and Testing Environments

KubeDB simplifies spinning up ephemeral database instances for CI pipelines and development namespaces, using the same configurations as production.

  • Kubernetes Operators
  • StatefulSets
  • Persistent Volumes
  • PostgreSQL on Kubernetes
  • MongoDB on Kubernetes
  • Elasticsearch on Kubernetes
  • Database Backup and Recovery
  • GitOps
Pulse - Elasticsearch Operations Done Right

Pulse can solve your Elasticsearch issues

Subscribe to the Pulse Newsletter

Get early access to new Pulse features, insightful blogs & exclusive events , webinars, and workshops.

We use cookies to provide an optimized user experience and understand our traffic. To learn more, read our use of cookies; otherwise, please choose 'Accept Cookies' to continue using our website.