我正在尝试使用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)
答案 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_proxy
和https_proxy
环境变量完成,这些变量可以在/etc/sysconfig/docker
或/etc/default/docker
中设置,具体取决于您的Linux发行版。)