始终在ContainerCreating状态中创建Pod

时间:2016-12-14 11:11:10

标签: docker kubernetes

我正在尝试使用kubernetes使用以下简单命令创建一个pod kubectl run example --image=nginx

它正确运行并将pod分配给minion,但由于以下错误,状态始终为ContainerCreating状态。我没有在我的机器上托管GCR或GCloud。所以不确定为什么它只从那里采摘。

1h 29m 14s {kubelet centos-minion1} Warning FailedSync Error syncing pod, skipping: 
failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed
for gcr.io/google_containers/pause:2.0, this may be because there are no
credentials on this request.  details: (unable to ping registry endpoint
https://gcr.io/v0/\nv2 ping attempt failed with error: Get https://gcr.io/v2/:
http: error connecting to proxy http://87.254.212.120:8080: dial tcp
87.254.212.120:8080: i/o timeout\n v1 ping attempt failed with error:
Get https://gcr.io/v1/_ping: http: error connecting to proxy
http://87.254.212.120:8080: dial tcp 87.254.212.120:8080: i/o timeout)

1 个答案:

答案 0 :(得分:0)

Kubernetes正在尝试为您的pod创建一个pause容器;此容器用于创建pod的网络命名空间。有关pause容器的更多常规信息,请参阅this question and its answers

针对您的具体错误:Kubernetes尝试从Google容器注册表(gcr.io)中提取pause容器的图片(根据您的错误消息gcr.io/google_containers/pause:2.0) 。显然,您的Docker引擎尝试使用位于87.254.212.120:8080的HTTP代理连接到GCR,它显然无法连接到该代理(i/o timeout)。

要更正此错误,请确保HTTP代理服务器处于联机状态且不阻止对GCR的HTTP请求,或者(如果您确实具有公共Internet访问权限)禁用Docker引擎的代理连接(这通常是使用http_proxyhttps_proxy环境变量完成,这些变量可以在/etc/sysconfig/docker/etc/default/docker中设置,具体取决于您的Linux发行版。)