Run and operate MariaDB in Kubernetes with mariadb-operator

The introduction of the StatefulSet resource was a game changer when it comes to run stateful workloads in Kubernetes, introducing a wide range of features, including:

  • Predictable DNS names for each Pod, allowing one to individually address them in the network.
  • Stable persistent storage for each Pod, ensuring that each of them is bound to the same PersistentVolumeClaim.
  • Ordered graceful deployments and automated rolling updates.

However, this isn’t quite enough for running databases in Kubernetes in a reliable way. We are missing day 1 and day 2 operations, such as configuring high availability and scheduling backups, which is something not managed by vanilla Kubernetes.