Kubernetes is used to manage and orchestrate containers in the cloud and on-premises. Unfortunately, Kubernetes is not that good at managing stateful apps. DokC wants to improve that by developing new technology.
The newly formed Data on Kubernetes Community (DoKC) consortium would like to bring some change.
Stateful apps are used for things like online banking and email. They retain the data and context of previous transactions, as well as current ones. Just like a web search, Stateless processes have no stored data or references to historical data.
What we have now
In the early days of Kubernetes, users would run web-based stateless services. For those who needed stateful services like a database, virtual machines and cloud-based services were the way to go. Now, those users want to deploy stateful apps on top of Kubernetes orchestrated containers.
That is easier said than done. Kubernetes supports stateful applications with Stateful Set, which does not work that well. Kubernetes pods are by nature, stateless and can disappear and be recreated in a very short time (we’re talking seconds).
The problem with disappearing pods
These rapid vanishings and recreations are not a problem for a stateless app but a stateful program needs its data to remain persistent. If the pod vanishes, that is an issue. The problem can be solved using StatefulSet using a permanent volume for data storage.
This approach does open itself up to multiple mishaps. This has not stopped people from using the method anyway. According to a forthcoming Data on Kubernetes Community survey, 70% of organizations already run stateful workloads on Kubernetes. However, it is not elegant, the report says, adding that the interoperability and quality of Kubernetes operators is still a hurdle. The best solution is to keep the application stateless and connect to a database for the data, but this is not always possible. DoKC wants to develop better solutions and technology to run stateful applications on Kubernetes.