Cyberithub

How to Check Stateful and Stateless Pods in Kubernetes Cluster{Easy Methods}

In this article, I will show you how to check Stateful and Stateless Pods in Kubernetes Cluster. Pods are the smallest unit of application runs in Kubernetes Cluster. It can represent a Single Application Container or cluster of application containers and volumes running in the same execution environment. A pod can be stateful or stateless depends on the application task it is going to perform. We will try to understand the concept of stateful and stateless in more detail with the help of examples.

What is Stateful Pod

A pod which maintains its state in Kubernetes Cluster is Known as Stateful Pod. Here pods are not interchangeable within the Cluster and each of the pod has its own unique identifier. Kubernetes will use the Statefulset features to deploy Stateful pods.

What is Stateless Pod

A pod which does not maintains its state in Kubernetes Cluster is Known as Stateless Pod. Here pods are interchangeable within the Cluster and it does not have any unique identifier. Kubernetes deploys stateless applications as uniform pods through deployment controller. It helps managing the state of the dynamically changing pods.

Difference between Stateful and Stateless Pods

  • Stateful pods are sometimes addresses by their hostname whereas stateless pods usually don’t.
  • Stateful pods are unique and are different from each other whereas stateless pods are usually looks same so any pod can be picked.
  • Stateful pods requires persistent storage whereas stateless pods does not have any persistent storage.
  • Front end applications are usually configured as stateless pods whereas backend applications are usually configured as stateful pods.

How to Check Stateful and Stateless Pods in Kubernetes Cluster

How to Check Stateful Pods in Kubernetes Cluster

Also Read: 3 Easy Ways to Check/Find OpenSUSE Linux Version

If you want to check all the Stateful pods running in your Kubernetes cluster then you need to use kubectl get statefulset command as shown below. The output shows the ready state of the pods and the number of days since pods are running.

[root@localhost ~]# kubectl get statefulset
NAME               READY AGE
stateful-example    1/1 160d
stateful-example-1  1/1 160d
stateful-example-2  1/1 160d
stateful-example-3  1/1 160d
example-app-4       1/1 160d
example-app-5       1/1 160d

You can also use kubectl get sts to check the stateful pods as shown below.

[root@localhost ~]# kubectl get sts
NAME                READY AGE
stateful-example    1/1  160d
stateful-example-1  1/1  160d
stateful-example-2  1/1  160d
stateful-example-3  1/1  160d
example-app-1       1/1  160d
example-app-2       1/1  160d

How to Check Stateless Pods in Kubernetes Cluster

If you want to check all the running stateless pods in your Kubernetes cluster then you need to run kubectl get deployments command as shown below.

[root@localhost ~]# kubectl get deployments
NAME                                 READY UP-TO-DATE AVAILABLE AGE
stateless-app                         1/1      1          1     160d
stateless-app-1                       1/1      1          1     160d
stateless-deployment                  1/1      1          1     160d
nginx-deployment                      1/1      1          1     160d
apache-app-1                          1/1      1          1     160d
sts-example-app-2                     1/1      1          1     160d
hello-world                           1/1      1          1     160d
sts-example-app-3                     1/1      1          1     160d
sts-example-conf-1                    1/1      1          1     160d
sts-example-conf-2                    1/1      1          1     160d
hello-world-app                       1/1      1          1     160d
stateless-deploy                      1/1      1          1     160d
apache-deploy-1                       1/1      1          1     160d

You can also verify the number of nodes running in your Kubernetes cluster by using kubectl get nodes command as shown below.

[root@localhost ~]# kubectl get nodes
NAME           STATUS ROLES  AGE  VERSION
192.168.0.106  Ready  master 28d  v1.18.0
192.168.0.107  Ready  master 28d  v1.18.0
192.168.0.108  Ready  master 28d  v1.18.0

Similarly there are other Kubernetes commands which you can use to know more about the pods. For example, If you want to check the status of the pods then you need to use kubectl get pods command.

[root@localhost ~]# kubectl get pods

If you want to know more about a pod then you need to use kubectl describe <pod>. Here we are trying to know more about example-app-2 pod using kubectl describe example-app-2 command.

[root@localhost ~]# kubectl describe example-app-2

If you want to delete some pod then you need to use kubectl delete pod <pod-name>. Here we are trying to delete example-app-2 pod using kubectl delete pod example-app-2 command as shown below.

[root@localhost ~]# kubectl delete pod example-app-2

 

 

 

Popular Recommendations:-

6 Easy Steps to Setup and Manage Log rotation Using logrotate in Linux

Migrate CentOS 8 to CentOS Stream 8 in 6 Easy Steps

26 iostat, vmstat and mpstat command examples to Monitor Linux Performance

Practical Steps to Install iostat and mpstat command on Linux(RHEL/CentOS 7/8)

16 Fdisk command examples to Manage Disk Partitions in Linux

How to Convert/Change time to epoch time using date utility on Linux/Unix Server

How to Install jq(JSON Processor) on RHEL/CentOS 7/8 

stateful vs stateless applications

Leave a Comment