15 August, 2021

How to fix Kubernetes CrashLoopBackOff

 How to debug/troubleshoot and fix Kubernetes CrashLoopBackOff?

Step 1:

run kubectl describe pod <REPLACE YOUR POD NAME HERE> will give us more information on that pod:

kubectl describe pod nginx-5796d5bc7c-xsl6p --namespace nginx-crashloop
Name:           nginx-5796d5bc7c-xsl6p
Namespace:      nginx-crashloop
Node:           ip-10-0-9-132.us-east-2.compute.internal/10.0.9.132
Start Time:     Tue, 11 Aug 2021 19:11:05 +0200
Labels:         app=nginx-crashloop
                name=nginx
                pod-template-hash=1352816737
                role=app
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"nginx-crashloop","name":"nginx-5796d5bc7c","uid":"fb9e9518-f542-11e7-a8f2-065cff0...
Status:         Running
IP:             10.47.0.15
Controlled By:  ReplicaSet/nginx-5796d5bc7c
Containers:
  nginx:
    Container ID:   docker://513cab3de8be8754d054a4eff45e291d33b63e11b2143d0ff782dccc286ba05e
    Image:          nginx
    Image ID:       docker-pullable://nginx@sha256:c4ee0ecb376636258447e1d8effb56c09c75fe7acf756bf7c13efadf38aa0aca
    Port:           <none>
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Tue, 11 Aug 2021 19:13:15 +0200

That will help to understand the issue.

Most of the cases you will find are related to configuration issues in deployment.yaml file.
For I found the reference key for the database password was wrong in myapp.yaml file.
I fixed and redeployed I got fixed this issue. here is hilighted key that was wrong earlier.

apiVersionapps/v1
kindDeployment
metadata
  namemongo-express
  labels:
    appmongo-express
spec:
  replicas2
  selector:
    matchLabels:
      appmongo-express    
  template:
    metadata:
      labels:
        appmongo-express
    spec:
      containers:
      - imagemongo-express
        imagePullPolicyIfNotPresent
        namemongo-express
        ports:
        - containerPort8081
        env:
        - nameME_CONFIG_MONGODB_ADMINUSERNAME
          valueFrom:
            secretKeyRef:
              namemongodb-secrete
              keymongo-root-username
        - nameME_CONFIG_MONGODB_ADMINPASSWORD 
          valueFrom:
            secretKeyRef:
              namemongodb-secrete
              keymongo-root-password
        - nameME_CONFIG_MONGODB_SERVER 
          valueFrom:
            configMapKeyRef:
              namemongodb-map
              keydatabase_url
---
apiVersionv1
kindService
metadata:  
  namemongo-express-service
spec:
  selector:
    appmongo-express
  typeLoadBalancer
  ports:
    - protocolTCP
      port8081
      targetPort8081
      nodePort30002

No comments:

Post a Comment

Microservices vs Monolithic Architecture

 Microservices vs Monolithic Architecture Here’s a clear side-by-side comparison between Microservices and Monolithic architectures — fro...