Why Running Databases on Kubernetes is a Recipe for Disaster
The Case for a New Platform Designed for Stateful Workloads
Running databases on Kubernetes introduces several challenges and risks due to the platform’s lack of native support for stateful workloads. Key issues include potential data loss from CSI crashes during storage attachment and detachment, immature database operators that may mishandle failovers or upgrades, and risks of data corruption during pod evictions, node failures, or network issues. Additionally, replica lag caused by network congestion can compromise database consistency.
While Kubernetes was designed for stateless workloads, efforts have been made to support stateful applications, but databases require specialized handling that Kubernetes cannot fully provide. The need for DBAs to become Kubernetes experts further complicates operations. These factors suggest that a new platform, specifically tailored for stateful workloads like databases, could offer better reliability, security, and ease of management by integrating optimized features for storage, replication, and failovers.