6 starting principles • TechCrunch

Kubernetes is fast becoming an industry standard, with up to 94% of organizations deploying their services and applications on the container orchestration platform, according to a survey. One of the biggest reasons companies deploy on Kubernetes is for standardization, which enables advanced users to see up to two times the productivity gains.

Standardizing on Kubernetes gives organizations the ability to deploy any workload, anywhere. But there was one piece missing: the technology assumed that workloads were ephemeral, meaning that only stateless workloads could be safely deployed on Kubernetes. However, the community has recently shifted the paradigm and brought features such as StatefulSets and Storage Classes, which make it possible to work with data on Kubernetes.

While it is possible to run stateful workloads on Kubernetes, it is still difficult. In this article, I offer ways to achieve this and why it is worth it.

Do it gradually

Kubernetes is on its way to becoming as popular as Linux and de facto running any application, anywhere, in a distributed fashion. Using Kubernetes involves learning many technical concepts and vocabulary. For example, newcomers may struggle with the many Kubernetes logical units such as containers, pods, nodes, and clusters.

If you’re not yet running Kubernetes in production, don’t jump right into data workloads. Instead, move stateless apps first to avoid losing data when things go wrong.

If you can’t find an operator that suits your needs, don’t worry because most of them are open-source.

Understand the limits and specificities

Once you’re familiar with general Kubernetes concepts, dive into the specifics of stateful concepts. For example, because applications may have different storage needs, such as performance or capacity requirements, you must provide the appropriate underlying storage system.

What the industry generally calls storage “profiles” are called storage classes in Kubernetes. They are used to describe the different types of classes that a Kubernetes cluster can access. Storage classes can have different QoS levels, such as I/O operations per second per GiB, backup policies, or arbitrary policies, such as bond modes and allowed topologies.

Another essential component to understand is StatefulSet. It is the Kubernetes API object used to manage stateful applications and offers key features such as:

  • Stable and unique network IDs that allow you to track volume, detach and reattach as you please;
  • Stable and persistent storage to keep your data safe;
  • Orderly and graceful deployment and scaling, which is necessary for many day 2 operations.

Although StatefulSet succeeded in replacing the infamous (now obsolete) PetSet, it is still flawed and has limitations. For example, the StatefulSet controller does not have built-in support for volume resizing (PVC), which is a major challenge if your application dataset size is about to exceed storage capacity. currently allocated. There are workarounds, but these limitations should be understood well in advance so the engineering team knows how to deal with them.


Not all news on the site expresses the point of view of the site, but we transmit this news automatically and translate it through programmatic technology on the site and not from a human editor.
Back to top button