Реестр контейнеров Google испытывает проблемы?
Я столкнулся с проблемой при использовании виртуальных машин, оптимизированных для работы с контейнерами. Я запускаю экземпляр с помощью следующей команды:
gcloud compute instances create "$instance_name" \
--tags "http-server" \
--image container-vm \
--scopes storage-rw,logging-write \
--metadata-from-file google-container-manifest="m2.yml" \
--zone "$my_zone" \
--machine-type "$my_machine_type"
где m2.yml
является:
version: v1beta2
containers:
- name: nginx
image: nginx
Когда я ssh к экземпляру и смотрю в /var/log/docker.log
Я вижу:
time="2015-06-17T07:42:59Z" level=error msg="Handler for GET /containers/{name:.*}/json returned error: no such id: kubelet"
time="2015-06-17T07:42:59Z" level=error msg="HTTP Error: statusCode=404 no such id: kubelet"
time="2015-06-17T07:42:59Z" level=info msg="GET /version"
time="2015-06-17T07:42:59Z" level=info msg="+job version()"
time="2015-06-17T07:42:59Z" level=info msg="-job version() = OK (0)"
time="2015-06-17T07:42:59Z" level=info msg="GET /containers/docker-daemon/json"
time="2015-06-17T07:42:59Z" level=info msg="+job container_inspect(docker-daemon)"
no such id: docker-daemon
time="2015-06-17T07:42:59Z" level=info msg="-job container_inspect(docker-daemon) = ERR (1)"
time="2015-06-17T07:42:59Z" level=error msg="Handler for GET /containers/{name:.*}/json returned error: no such id: docker-daemon"
time="2015-06-17T07:42:59Z" level=error msg="HTTP Error: statusCode=404 no such id: docker-daemon"
Там нет контейнеров, работающих на экземпляре и docker images -a
говорит:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
gcr.io/google_containers/pause 0.8.0 2c40b0526b63 11 weeks ago 241.7 kB
<none> <none> 56ba5533a2db 11 weeks ago 241.7 kB
<none> <none> 511136ea3c5a 2.009460 years ago 0 B
Контейнерный двигатель испытывает некоторые проблемы, или я делаю что-то не так?
Update1
Я дал пример попробовать:
version: v1
kind: Pod
spec:
containers:
- name: simple-echo
image: gcr.io/google_containers/busybox
command: ['nc', '-p', '8080', '-l', '-l', '-e', 'echo', 'hello world!']
imagePullPolicy: Always
ports:
- containerPort: 8080
hostPort: 8080
protocol: TCP
restartPolicy: Always
dnsPolicy: Default
и это все еще ошибка в журнале:
evgeny@instance:~$ cat /var/log/docker.log | grep error
time="2015-06-18T16:28:56Z" level=error msg="Handler for GET /containers/{name:.*}/json returned error: no such id: kubelet"
time="2015-06-18T16:28:56Z" level=error msg="HTTP Error: statusCode=404 no such id: kubelet"
time="2015-06-18T16:28:56Z" level=error msg="Handler for GET /containers/{name:.*}/json returned error: no such id: docker-daemon"
time="2015-06-18T16:28:56Z" level=error msg="HTTP Error: statusCode=404 no such id: docker-daemon"
time="2015-06-18T16:28:56Z" level=error msg="Handler for GET /images/{name:.*}/json returned error: No such image: gcr.io/google_containers/busybox"
time="2015-06-18T16:28:56Z" level=error msg="HTTP Error: statusCode=404 No such image: gcr.io/google_containers/busybox"
time="2015-06-18T16:28:56Z" level=error msg="Handler for GET /containers/{name:.*}/json returned error: no such id: docker"
time="2015-06-18T16:28:56Z" level=error msg="HTTP Error: statusCode=404 no such id: docker"
time="2015-06-18T16:28:56Z" level=error msg="Handler for GET /images/{name:.*}/json returned error: No such image: gcr.io/google_containers/busybox"
time="2015-06-18T16:28:56Z" level=error msg="HTTP Error: statusCode=404 No such image: gcr.io/google_containers/busybox"
Я собирался отправить отзыв через форму обратной связи, но отправить не удалось:
relay__en.js?authuser=1:182 Uncaught TypeError: Cannot set property 'vmFeedbackData' of undefined
, Такая история.
2 ответа
Последний образ vm контейнера не поддерживает API v1beta2 kubernetes. Вам нужно будет обновить манифест для использования v1beta3 или v1 (с соответствующими изменениями yaml).
Последняя версия документации контейнера vm показывает пример yaml с использованием API v1.
Я столкнулся с подобной проблемой, и решение оказалось, что я пытался использовать
securityContext:
privileged: true
Kubernetes не соблюдает это свойство при загрузке образа докера в экземпляр GCE без использования кластера Google Container (т.е. с использованием google-container-manifest
элемент метаданных на compute.v1.instance
или compute.v1.instanceTemplate
), поэтому он просто никогда не загружает изображение должным образом на экземпляр.
Удаление этого свойства решило мою проблему.