Kubernetes GCP Ошибка ответа от демона: команда не указана: CreateContainerError - PullRequest
1 голос
/ 21 апреля 2020

Я пытаюсь доставить sh мой контейнер в GCP Kubernetes в моем кластере. Мой модуль работает локально, но он не хочет работать на GCP. Он возвращается с этой ошибкой Error response from daemon: No command specified: CreateContainerError

Это сработало, если я запустил его локально в docker, но как только я набрал sh в реестре контейнеров на gcp и применил развертывание yaml, используя kubectl apply -f в моем пространстве имен он никогда не поднимается и просто говорит: gce-exporting-fsab83222-85sc4 0/1 CreateContainerError 0 5m6s

Я не могу извлечь из него журналы: Error from server (BadRequest): container "gce" in pod "gce-exporting-fsab83222-85sc4" is waiting to start: 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"]

Python Сценарий:

#!/usr/bin/python3

import time 

def your_function():
    print("Hello, World")

while True:
    your_function()
    time.sleep(10) #make function to sleep for 10 seconds

Файл yaml:

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, чтобы убедиться, что модуль работает, но не повезло.

Это результат описания модуля

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

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Это был неправильно сформированный персонаж в моем Dockerfile, и это привело к созданию sh.

0 голосов
/ 22 апреля 2020

Возможно, вам потребуется обновить 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"]

Затем создайте и создайте sh образ docker и заново создайте модуль. Надеюсь, это поможет!

...