Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. It is based on technology used to run Google’s own applications and can operate in on-premise, hybrid, and public cloud environments. Because of this flexibility, Kubernetes has become a popular choice in complex enterprise environments. However, as enterprises adopt containers, they need a Kubernetes storage solution that provides HA, backups, snapshots, encryption, monitoring integration, and more. If you are thinking about running applications like MySQL, Cassandra, Redis, Postgres, or any other stateful services on k8s, this guide about Kubernetes persistent storage is for you.
Problems with stateful apps on Kubernetes today:
Getting started running stateful services on Kubernetes is easy. Portworx can be installed directly via the kubectl command line and will run as a Daemon set. A Portworx container runs on each host and creates a cluster-wide storage fabric from your underlying block devices.
Kubernetes contains a variety of stateful primitives that, when combined with Portworx, allow enterprises to reliably run and manage the most common stateful applications such as MySQL, Cassandra, Redis, Postgres, and more. For instance, Portworx provides a flexible storage layer for Kubernetes statefulsets, the recommended way to run database containers that provide the semantics required by topologies like master/slave (e.g. MySQL) and ring (e.g. Cassandra). You can easily configure a statefulset for a popular database which will automatically provision storage using the underlying Portworx volume driver.
Many enterprises who have tried to use Kubernetes for stateful applications at scale have stumbled when it comes to using the platform for services like databases, queues, and key-value stores. Even when running with recommended storage drivers like Amazon EBS or Google Cloud disks, there are problems such as stuck EBS drives and Auto Scaling Groups deleting drives.
Portworx solves all these problems, while also providing snapshots, off-site backups, encryption of data in flight and at rest, and full automation of data management. Portworx is more than just Kubernetes persistent storage. It is a complete container data services platform.
Portworx’s deep integration into Kubernetes gives you the benefits of Portworx container data services, directly through your scheduler. It provides a management layer for storage that is decoupled from compute. For instance, you can increase your storage pool without container downtime and encrypt all your k8s volumes at the container granular level. Additionally, container-granular replication makes failover less error prone and much faster, meaning you avoid problems like stuck EBS drives.
Need help running stateful services on Kubernetes? Contact us.