我在使用容器优化的VM时遇到了问题。我使用以下命令启动实例:
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
我尝试了an example:
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
。这样的故事。
答案 0 :(得分:2)
最新的容器vm映像不支持v1beta2 kubernetes API。您需要更新清单以使用v1beta3或v1(以及相应的yaml更改)。
最新版本的container vm documentation显示了使用v1 API的yaml示例。
答案 1 :(得分:0)
我遇到了类似的问题,解决方案结果是我试图使用
securityContext:
privileged: true
Kubernetes在不使用Google容器群集(即google-container-manifest
或{{因此,它永远不会将图像正确加载到实例上。
删除该属性解决了我的问题。