Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

kubernetes failed to start pod due to ContainerCannotRun

I am new to kubernetes. Recently set up kubernetes cluster with 1 master and 1 node.

I am able to start a docker container by running sudo docker run <docker-image> in my node machine.

But i failed to start docker container as a pod using kubernetes yml file. by running sudo kubectl create -f deployment.yml

I describe the pod information and saw this error message.

      Last State:   Terminated
      Reason:       ContainerCannotRun
      Message:      OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"HOSTNAME\": executable file not found in $PATH": unknown
      Exit Code:    128

docker container supposes to start a java executable. this is my deployment file

kind: Service
apiVersion: v1
metadata:
  name: service1-service
spec:
  selector:
    app: service1
  ports:
    - protocol: "TCP"
      # Port accessible inside cluster
      port: 26666
      # Port to forward to inside the pod
      targetPort: 26666
      # Port accessible outside cluster
      nodePort: 26666
  type: LoadBalancer

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: service1-depolyment
spec:
  selector:
    matchLabels:
      app: service1
  replicas: 1
  template:
    metadata:
      labels:
        app: service1
    spec:
      containers:
        - name: service1
          image: service1-docker-image
          imagePullPolicy: Never
          ports:
            - containerPort: 26666
          # args: ["HOSTNAME", "KUBERNETES_PORT"]

In this deployment file, I try to create a nginx and one java web applicaition service.

It is because i defined wrong apiVersion and kind ?

Any help would be appreciated.

like image 494
John Avatar asked Jun 09 '19 19:06

John


1 Answers

Look at this error exec: \"HOSTNAME\": executable file not found in $PATH

I had a similar error since the container could not locate the docker "CMD" binary since I gave it the wrong path. Check the path to the file and that should do the trick.

like image 163
Saloni Goel Avatar answered Oct 21 '22 05:10

Saloni Goel