6 basic 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 key reasons companies implement Kubernetes is for standardization, which allows power users to see productivity gains of up to two times.

Standardizing on Kubernetes gives organizations the ability to deploy any workload, anywhere. But there was a missing piece: The technology assumed that workloads were ephemeral, meaning that only stateless workloads could be securely deployed on Kubernetes. However, the community recently changed the paradigm and brought features like StatefulSets and Storage Classes, which make using data in Kubernetes possible.

While it is possible to run stateful workloads on Kubernetes, it remains a challenge. In this article, I provide ways to make it happen and why it’s worth it.

do it progressively

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

If you’re not already running Kubernetes in production, don’t jump right into data workloads. Instead, start by moving stateless apps to prevent data loss when things go wrong.

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

Understand the limitations and specifics

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

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

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

  • Unique and stable network identifiers that allow you to track volume and disconnect and reconnect whenever you want;
  • Stable and persistent storage to keep your data safe;
  • Neat and orderly deployment and scaling, which are necessary for many day 2 operations.

While StatefulSet has been a successful replacement for the infamous (now deprecated) PetSet, it is still imperfect and has limitations. For example, the StatefulSet driver does not have built-in support for volume resizing (PVC), which is a big challenge if your application’s dataset size is about to grow beyond your current allocated storage capacity. . Workarounds exist, but such limitations need to be understood in advance so the engineering team knows how to handle them.

Leave a Comment