Docker 来自守护进程的Kubernetes GCP错误响应:未指定命令:CreateContainerError

Docker 来自守护进程的Kubernetes GCP错误响应:未指定命令:CreateContainerError,docker,kubernetes,google-cloud-platform,google-kubernetes-engine,Docker,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我试图将我的容器提升到集群中的GCP Kubernetes。我的pod在本地运行,但它不想在GCP上运行。它从守护进程返回此错误错误响应:未指定命令:CreateContainerError 如果我在docker中本地运行它,它会起作用,但一旦我将它推到gcp上的容器注册表,并在我的命名空间中使用kubectl apply-f应用部署yaml,它就永远不会显示它,只是不断地说 gce-exporting-fsab83222-85sc4 0/1 CreateContainerError 0 5m6

我试图将我的容器提升到集群中的GCP Kubernetes。我的pod在本地运行,但它不想在GCP上运行。它从守护进程返回此错误
错误响应:未指定命令:CreateContainerError

如果我在docker中本地运行它,它会起作用,但一旦我将它推到gcp上的容器注册表,并在我的命名空间中使用
kubectl apply-f
应用部署yaml,它就永远不会显示它,只是不断地说
gce-exporting-fsab83222-85sc4 0/1 CreateContainerError 0 5m6s

我也无法从中获取任何日志:
服务器错误(BadRequest):pod“gce-exporting-fsab83222-85sc4”中的容器“gce”正在等待启动:CreateContainerError

以下是我的档案:

Dockerfile:

FROM alpine:3.8

WORKDIR /build

COPY test.py /build
RUN chmod 755 /build/test.py

CMD ["python --version"]
CMD ["python", "test.py"]
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: gce-exporting
  namespace: "monitoring"
spec:
  selector:
    matchLabels:
      app: gce
  template:
    metadata:
      labels:
        app: gce
    spec:
      containers:
      - name: gce
        image: us.gcr.io/lab-manager/lab/gce-exporting:latest
Python脚本:

yaml文件:

FROM alpine:3.8

WORKDIR /build

COPY test.py /build
RUN chmod 755 /build/test.py

CMD ["python --version"]
CMD ["python", "test.py"]
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: gce-exporting
  namespace: "monitoring"
spec:
  selector:
    matchLabels:
      app: gce
  template:
    metadata:
      labels:
        app: gce
    spec:
      containers:
      - name: gce
        image: us.gcr.io/lab-manager/lab/gce-exporting:latest
我尝试在最后使用CMD和Entrypoint来确保pod正在运行,但没有成功

这是描述pod的输出

Events:
  Type     Reason     Age               From                                             Message
  ----     ------     ----              ----                                             -------
  Normal   Scheduled  60s               default-scheduler                                Successfully assigned monitoring/gce-exporting-fsab83222-85sc4 to gke-dev-lab-standard-8efad9b6-8m66
  Normal   Pulled     5s (x7 over 59s)  kubelet, gke-dev-lab-standard-8efad9b6-8m66  Container image "us.gcr.io/lab-manager/lab/gce-exporting:latest" already present on machine
  Warning  Failed     5s (x7 over 59s)  kubelet, gke-dev-lab-standard-8efad9b6-8m66  Error: Error response from daemon: No command specified

您可能需要使用以下内容更新Dockerfile:

FROM python

WORKDIR /build
ENV PYTHONUNBUFFERED=1
ENV PYTHONIOENCODING=UTF-8
COPY test.py /build
RUN chmod 755 /build/test.py

CMD ["python", "test.py"]

然后构建并推送docker映像并重新创建pod。希望有帮助

这是我Dockerfile中的一个格式错误的字符,导致它崩溃。

你能运行
kubectl description pods-n monitoring
并检查是否有其他错误显示吗?添加到原始desc@hoque
CMD[“python--version”]CMD[“python”,“test.py”]
你能用
入口点[“python”替换这两行吗CMD[“test.py”]
并检查?如果您没有在Dockerfile中安装python,也可以使用python:3中的
。@soniccol用户hoque提供的解决方案是否解决了您的问题?