![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
Kubernetes is an open source orchestration platform designed for deploying, managing and automating containerized applications. In the early years of Kubernetes, the platform primarily supported and ran stateless applications, defined as applications that do not need to retain data from one session to the next when containers are restarted. This use case created the misconception that Kubernetes is suitable only for stateless applications. But with the growing Kubernetes adoption and community contribution, it has evolved, of course, as one of the leading platforms for every type of application, including the deployment and management of scalable and highly available stateful applications.
However, even with full orchestration support for stateful applications, there are various gaps — especially storage-related gaps — in Kubernetes intentionally left for vendors to fill. The growing use of Kubernetes for stateful applications is pushing the advancement of cloud native storage solutions that can deliver the availability and resiliency that stateful applications require.
Initially, Kubernetes provided basic support for statically attaching volumes to pods using shared storage drives such as NFS and ISCSI for specific cloud providers like GKE and AWS. But adding any new storage solution to Kubernetes required checking code into the core Kubernetes code repository, making storage a complicated process.
Diamanti contributed the FlexVolume plugin to Kubernetes, which opened up a new era of volume provisioning in Kubernetes. It enabled storage vendors to create custom storage plugins without adding them to the Kubernetes repository. This, in turn, provided Kubernetes users flexibility to choose from different storage solutions with better management and data services. Over the years, the Kubernetes community introduced several rich storage features, such as:
The FlexVolume plugin further evolved and paved the way for a more advanced storage plugin called Container Storage Interface (CSI). This plugin standardizes Kubernetes integrations with any third-party storage solution and provides support for data services natively within Kubernetes.
Even with these community-driven improvements, organizations still face storage-related challenges when working with stateful applications in Kubernetes. As organizations adopt containerized databases and other applications that contain important intellectual property, they realize the need to provide a more advanced set of storage features. Some of these include:
| Storage Service | RPO | RTO | Detail |
| Backup | Hours to days | Hours to days | Tape backup is one of the oldest ways to backup data. Even though tape backup is reliable, it might take days to backup and recover the data, especially if the tape backup is stored offsite. Backups to the cloud, hard drive, or optical drive are more commonplace today but still require a full recovery of a workload which can take several hours (or days). |
| Snapshots | Minutes to hours | Minutes to hours | Snapshots can be taken more frequently than tape backup, resulting in lower RPO. Recovery time from a snapshot depends on the underlying storage architecture and whether data copy is involved during the restore process. Also as a snapshot is usually local, it is good for rewinding the data but not for keeping it safe. |
| Replication | Seconds to minutes | Minutes | Replication (asynchronous) happens either at the volume level or application level. It can help to recover data with RPO and RTO in minutes or even seconds. |
| Mirroring | 0 | 0 | Mirroring is synchronous volume replication across storage devices which can exist either in the same cluster or in different availability zones. |
| DR Replication | Minutes to hours | Minutes | Disaster Recovery (DR) volume replication helps to asynchronously create a clone of volume at the DR cluster to protect against primary site failure and easily move the application to a DR site for quick failover. |
A cloud native storage environment requires the best of all these worlds:
And it also needs to be cost-effective and built for Kubernetes.
Diamanti is a bare metal, hyper-converged Kubernetes platform that brings everything you need to run containers, including software-optimized NVMe-based SSD storage, under a single umbrella. Diamanti pioneered the storage capabilities for Kubernetes with the FlexVolume plugin and has been continuing to innovate in this area with support for backup, DR, snapshot and mirroring. The low-latency architecture supports stretched clustering across nodes, zones, or even data centers. Its patented I/O offload architecture also helps to deliver best-in-class performance, achieving 10x to 30x improvement over standard server or HCI environments. Finally, Diamanti also brings the true hybrid cloud capability allowing migrations of stateful applications across the cloud.
Kubernetes has evolved to become the best platform to orchestrate stateful applications. You can easily manage and scale the stateful application with Kubernetes constructs, such as StatefulSets and persistent volumes. But still, it’s not enough to utilize the full potential of Kubernetes without an underlying storage infrastructure. When deciding upon a third-party storage vendor, keep these challenges in mind, and look for vendors that provide a solution to the issues most critical to your application deployment.