DEV Community

Cover image for Deployment vs StatefulSet | Kubernetes StatefulSet simply explained
TechWorld with Nana
TechWorld with Nana

Posted on

Deployment vs StatefulSet | Kubernetes StatefulSet simply explained

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 🙂

Top comments (3)

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

Thanks a lot, glad it's helpful :)

Collapse
 
murrengan profile image
Murrengan

Ths!