我是kubernetes的新手。最近建立了具有1个主节点和1个节点的kubernetes集群。
我可以通过运行启动Docker容器
sudo docker run <docker-image>
在我的节点机器上。
但是我无法使用kubernetes yml文件将Docker容器作为Pod启动。
通过运行sudo kubectl create -f deployment.yml
我描述了吊舱信息,并看到了此错误消息。
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容器假设要启动一个Java可执行文件。 这是我的部署文件
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"]
在此部署文件中,我尝试创建一个nginx和一个Java Web应用程序服务。
这是因为我定义了错误的apiVersion和kind吗?
任何帮助将不胜感激。
答案 0 :(得分:1)
查看此错误exec: \"HOSTNAME\": executable file not found in $PATH
我有一个类似的错误,因为容器找不到错误的路径,因此无法找到docker“ CMD”二进制文件。检查文件的路径,应该可以解决问题。