Docker 来自守护进程的Kubernetes GCP错误响应:未指定命令:CreateContainerError
我试图将我的容器提升到集群中的GCP Kubernetes。我的pod在本地运行,但它不想在GCP上运行。它从守护进程返回此错误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
错误响应:未指定命令: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@hoqueCMD[“python--version”]CMD[“python”,“test.py”]
你能用入口点[“python”替换这两行吗CMD[“test.py”]
并检查?如果您没有在Dockerfile中安装python,也可以使用python:3中的。@soniccol用户hoque提供的解决方案是否解决了您的问题?