DEV Community

loading...
Cover image for Deployment vs StatefulSet | Kubernetes StatefulSet simply explained

Deployment vs StatefulSet | Kubernetes StatefulSet simply explained

techworld_with_nana profile image Techworld with Nana ・1 min read

While StatefulSet is used for stateful applications, like databases, Deployment component is used to deploy stateless applications. Many web apps fall into this category.

So the question is:

What is the difference between Deployment and StatefulSet components? 🤔

Deployment vs StatefulSet component
Pods deployed by Deployment are identical and interchangeable, created in random order with random hashes in their Pod names.

In contrast to that, the Pods deployed by StatefulSet component are NOT identical and deployment is more complex. They each have their own sticky identity, which they keep between restarts and each can be addressed individually. Thus, they can't be created or deleted at the same time or in any order.

How these identities are created and why it's so important, I explain in detail in the below video 🎬.

You can find the full video here:


I'm happy to connect with you on 🙂

Discussion (3)

pic
Editor guide
Collapse
jiayanguo profile image
jguo

Thanks for sharing. It's very helpful. I was confused why statefulset is required.

It's used to create differentiate pods. Like master-slaves, leader-followers.

Collapse
techworld_with_nana profile image
Techworld with Nana Author

Thanks a lot, glad it's helpful :)

Collapse
murrengan profile image