Kubernetes pod keeps crashing with no error in logs

7/9/2021

I am trying to deploy apache docker image using Terraform on Kubernetes Cluster

I tried the following command and able to hit the URL localhost:8082 from browser successfully

docker run -it --rm -d -p 8082:80 webservice

I then created a kubernetes_deployment using Terraform but pod keeps crashing and there's nothing in logs

resource "kubernetes_deployment" "api" {
  metadata {
    name = "ex-api"
    labels = {
      app       = "EX"
      component = "api"
    }
  }
  spec {
    replicas = 1
    selector {
      match_labels = {
        app = "EX"
      }
    }
    template {
      metadata {
        name = "ex-api"
        labels = {
          app       = "EX"
          component = "api"
        }
      }
      spec {
        container {
          image             = "${var.web_service_image}:${var.web_service_image_tag}"
          image_pull_policy = "IfNotPresent"
          name              = "api-image"

          # All the other configuration options should be here too.
          port {
            container_port = 80
            name           = "web"
          }
        }  # end of container block

      } # end of spec block
    } # end of template block
  } # end of spec out-block
}

Pod's output

kubectl get pod
NAME                      READY   STATUS             RESTARTS   AGE
ex-api-5458586bd8-ex6sp   0/1     CrashLoopBackOff   19         72m

I assume I should either add some command or daemonize (eg -itd when using docker) it so that it keeps running. I may be wrong here

Kindly let me know what should I do to overcome this

-- Sathish Kumar
docker
kubernetes
terraform

1 Answer

7/20/2021

No logs or no events shown when you run the describe command generally suggests that that there is an issue with invoking your entrypoint in your Dockerfile. So, you may have to overwrite the command in your deployment.yaml

In your case - your deployment may need to use the command that you have or tried to use in your Dockerfile. Apparently, kubernetes pod is unable to use what you have defined in the Dockerfile.

-- Rakesh Gupta
Source: StackOverflow