Cyberithub

Solved "Kubernetes Pod CrashLoopBackOff with Exit Code 1" Error

Advertisements

In this article, we will see how to solve kubernetes pod CrashLoopBackOff with Exit Code 1 error. If you are working on Kubernetes Cluster from quite some time then I am sure you must have seen this CrashLoopBackOff status very frequently. This error is so common that sometimes it is very difficult to find the exact root cause of this error especially in a situation where you have multiple pods in a cluster showing same error and each of the them is due to different reasons. So in this situation you need to always look for exit code in pod description to narrow down the problem.

In my case, I faced similar problem when I was trying to deploy one application in my kubernetes cluster where I noticed pod showing in CrashLoopBackOff status with Exit Code 1 error in the pod description post deployment. This exit code helped me finding the root cause of CrashLoopBackOff error which I am going to explain below in great detail.

 

Solved "Kubernetes Pod CrashLoopBackOff with Exit Code 1" Error

Solved "Kubernetes Pod CrashLoopBackOff with Exit Code 1" Error

Also Read: Solved "Error while dialing dial unix /var/run/dockershim.sock"

As I was explaining, after deploying my application to kubernetes cluster when I tried to check the status of pods using kubectl get pods command then I noticed CrashLoopBackOff status on the output as you can see below.

[cyberithub@node1]$ kubectl get pods
NAME                        READY  STATUS             RESTARTS  AGE
app-fscm-66b6c48dd5-8n9sh   0/1    CrashLoopBackOff   21        2h
app-hcm-74d6a52ee7-q72cf    1/1    Running            0         13d
app-portal-51g9d36ab6-z8tgd 1/1    Running            0         41d

To further check this CrashLoopBackOff error, I tried to describe the pod by using kubectl describe pod app-fscm-66b6c48dd5-8n9sh command as shown below. Here I have noticed that the Reason is showing as Error and Exit Code is showing as 1.

[cyberithub@node1]$ kubectl describe pod app-fscm-66b6c48dd5-8n9sh
...............................
  State:       Waiting
    Reason:    CrashLoopBackOff
  Last State:  Terminated
    Reason:    Error
    Exit Code: 1
................................

The above exit code basically means the application has failed to start within the process which in turn causing failure of container creation and hence pod is not coming into running state. You can also notice that the restart count will keep on increasing. It is simply because every time application fails to start, kubernetes will restart that pod to bring up the application and hence restart count will keep on increasing until the pod comes to the running state.

So it is important to understand here that to fix the above error, you need to fix the issue with the application which you are trying to deploy in the cluster. In my case, I have identified the problem in my application and fixed it. Then I tried again to deploy that application and this time I noticed that it got deployed successfully as you can see below.

[cyberithub@node1]$ kubectl get pods
NAME                        READY  STATUS   RESTARTS AGE
app-fscm-66b6c48dd5-k6d4e   1/1    Running  0        77s
app-hcm-74d6a52ee7-q72cf    1/1    Running  0        13d
app-portal-51g9d36ab6-z8tgd 1/1    Running  0        41d

While the above solution worked for me because it was issue with only one pod. Sometimes it is possible that the same error can occur for multiple pods in a cluster. In that case, it is possible that there is no problem with your application but actually on the cluster node. To check that, you can run kubectl get nodes -o wide command as shown below and verify all the nodes are working fine.

[cyberithub@node1]$ kubectl get nodes -o wide

Hope above given solution would be enough to solve your CrashLoopBackOff with Exit Code 1 error as well. Still if you see the above solution does not work for you then I would request you to please let me know your feedback in the comment box so that we can work together to solve your problem as well.

Leave a Comment