Kubernetes is quick turning into an trade customary, with as much as 94% of organizations deploying their companies and purposes on the container orchestration platform, per a survey. One of many key causes corporations deploy on Kubernetes is standardization, which lets superior customers see productiveness positive aspects of as much as two occasions.
Standardizing on Kubernetes provides organizations the flexibility to deploy any workload, wherever. However there was a lacking piece: the know-how assumed that workloads have been ephemeral, that means that solely stateless workloads may very well be safely deployed on Kubernetes. Nevertheless, the group lately modified the paradigm and introduced options equivalent to StatefulSets and Storage Courses, which make utilizing information on Kubernetes doable.
Whereas working stateful workloads on Kubernetes is feasible, it’s nonetheless difficult. On this article, I present methods to make it occur and why it’s price it.
Do it progressively
Kubernetes is on its approach to being as widespread as Linux and the de facto method of working any utility, wherever, in a distributed vogue. Utilizing Kubernetes entails studying numerous technical ideas and vocabulary. For example, newcomers may wrestle with the various Kubernetes logical items equivalent to containers, pods, nodes, and clusters.
If you’re not working Kubernetes in manufacturing but, don’t bounce instantly into information workloads. As a substitute, begin with transferring stateless purposes to keep away from shedding information when issues go sideways.
In case you can’t discover an operator that matches your wants, don’t fear, as a result of most of them are open-source.
Perceive the restrictions and specificities
As soon as you’re aware of normal Kubernetes ideas, dive into the specifics for stateful ideas. For instance, as a result of purposes could have completely different storage wants, equivalent to efficiency or capability necessities, you could present the right underlying storage system.
What the trade typically calls storage “profiles” is termed Storage Courses in Kubernetes. They supply a approach to describe the various kinds of courses a Kubernetes cluster can entry. Storage courses can have completely different quality-of-service ranges, equivalent to I/O operations per second per GiB, backup insurance policies, or arbitrary insurance policies, equivalent to binding modes and allowed topologies.
One other essential element to know is StatefulSet. It’s the Kubernetes API object used to handle stateful purposes, and provides key options equivalent to:
- Secure, distinctive community identifiers that allow you to maintain monitor of quantity, and detach and reattach them as you please;
- Secure, persistent storage in order that your information is secure;
- Ordered, swish deployment and scaling, which is required for a lot of Day 2 operations.
Whereas StatefulSet has been a profitable substitute for the notorious PetSet (now deprecated), it’s nonetheless imperfect and has limitations. For instance, the StatefulSet controller has no built-in help for quantity (PVC) resizing — which is a significant problem if the scale of your utility information set is about to develop above the present allotted storage capability. There are workarounds, however such limitations have to be understood properly forward of time in order that the engineering crew is aware of learn how to deal with them.