Kubernetes is quick changing into an business customary, with as much as 94% of organizations deploying their providers and functions on the container orchestration platform, per a survey. One of many key causes firms deploy on Kubernetes is standardization, which lets superior customers double productiveness positive aspects.
Standardizing on Kubernetes provides organizations the flexibility to deploy any workload, anyplace. However there was a lacking piece: The expertise assumed that workloads have been ephemeral, which means that solely stateless workloads may very well be safely deployed on Kubernetes. Nonetheless, the group not too long ago modified the paradigm and introduced options similar to StatefulSets and Storage Courses, which make utilizing information on Kubernetes doable.
Whereas operating stateful workloads on Kubernetes is feasible, it’s nonetheless difficult. On this article, I present methods to make it occur and why it’s value it.
Do it progressively
Kubernetes is on its strategy to being as widespread as Linux and the de facto manner of operating any utility, anyplace, in a distributed style. Utilizing Kubernetes entails studying lots of technical ideas and vocabulary. For example, newcomers may battle with the various Kubernetes logical models similar to containers, pods, nodes and clusters.
If you’re not operating Kubernetes in manufacturing but, don’t soar instantly into information workloads. As a substitute, begin with shifting stateless functions to keep away from dropping information when issues go sideways.
If you happen to can’t discover an operator that matches your wants, don’t fear, as a result of most of them are open supply.
Perceive the constraints and specificities
As soon as you’re acquainted with basic Kubernetes ideas, dive into the specifics for stateful ideas. For instance, as a result of functions might have completely different storage wants, similar to efficiency or capability necessities, it’s essential to present the right underlying storage system.
What the business usually calls storage “profiles” is termed Storage Courses in Kubernetes. They supply a strategy to describe the various kinds of lessons a Kubernetes cluster can entry. Storage lessons can have completely different quality-of-service ranges, similar to I/O operations per second per GiB, backup insurance policies or arbitrary insurance policies similar to binding modes and allowed topologies.
One other crucial part to know is StatefulSet. It’s the Kubernetes API object used to handle stateful functions and presents key options similar to:
- Steady, distinctive community identifiers that allow you to maintain observe of quantity, and lets you detach and reattach them as you please.
- Steady, persistent storage in order that your information is protected.
- Ordered, sleek deployment and scaling, which is required for a lot of Day 2 operations.
Whereas StatefulSet has been a profitable alternative for the notorious PetSet (now deprecated), it’s nonetheless imperfect and has limitations. For instance, the StatefulSet controller has no built-in support for volume (PVC) resizing — which is a serious problem if the scale of your utility dataset is about to develop above the present allotted storage capability. There are workarounds, however such limitations have to be understood effectively forward of time in order that the engineering staff is aware of find out how to deal with them.