51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用kubernetes创建容器一直处于ContainerCreating状态的原因查找与解决

最近刚刚入手研究kubernetes,运行容器的时候,发现一直处于ContainerCreating状态,悲了个催,刚入手就遇到了点麻烦,下面来讲讲如何查找问题及解决的

运行容器命令:

[sourcecode language="plain"]
[root@master-149 ~]# kubectl run my-alpine --image=alpine --replicas=2 ping www.baidu.com
[/sourcecode]

查看pods状态

[sourcecode language="plain"]
[root@master-149 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-alpine-2150523991-knzcx 0/1 ContainerCreating 0 6m
my-alpine-2150523991-lmvv5 0/1 ContainerCreating 0 6m
[/sourcecode]

一直处于ContainerCreating状态,开始查找原因

执行如下命令:

[sourcecode language="plain"]

[root@master-149 ~]# kubectl describe pod my-alpine
Name: my-alpine-2150523991-knzcx
Namespace: default
Node: node-150/192.168.10.150
Start Time: Sat, 19 Nov 2016 18:20:52 +0800
Labels: pod-template-hash=2150523991,run=my-alpine
Status: Pending
IP:
Controllers: ReplicaSet/my-alpine-2150523991
Containers:
my-alpine:
Container ID:
Image: alpine
Image ID:
Port:
Args:
ping
www.baidu.com
QoS Tier:
cpu: BestEffort
memory: BestEffort
State: Waiting
Reason: ContainerCreating
Ready: False
Restart Count: 0
Environment Variables:
Conditions:
Type Status
Ready False
No volumes.
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message


7m 7m 1 {default-scheduler } Normal Scheduled Successfully assigned my-alpine-2150523991-knzcx to node-150
6m 6m 1 {kubelet node-150} 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/: dial tcp 64.233.189.82:443: getsockopt: connection refused\n v1 ping attempt failed with error: Get https://gcr.io/v1/_ping: dial tcp 64.233.189.82:443: getsockopt: connection refused)"
4m 47s 3 {kubelet node-150} 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/: dial tcp 74.125.204.82:443: getsockopt: connection refused\n v1 ping attempt failed with error: Get https://gcr.io/v1/_ping: dial tcp 74.125.204.82:443: getsockopt: connection refused)"
4m 8s 6 {kubelet node-150} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause:2.0\""
Name: my-alpine-2150523991-lmvv5
Namespace: default
Node: node-150/192.168.10.150
Start Time: Sat, 19 Nov 2016 18:20:52 +0800
Labels: pod-template-hash=2150523991,run=my-alpine
Status: Pending
IP:
Controllers: ReplicaSet/my-alpine-2150523991
Containers:
my-alpine:
Container ID:
Image: alpine
Image ID:
Port:
Args:
ping
www.baidu.com
QoS Tier:
cpu: BestEffort
memory: BestEffort
State: Waiting
Reason: ContainerCreating
Ready: False
Restart Count: 0
Environment Variables:
Conditions:
Type Status
Ready False
No volumes.
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message


7m 7m 1 {default-scheduler } Normal Scheduled Successfully assigned my-alpine-2150523991-lmvv5 to node-150
5m 1m 3 {kubelet node-150} 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/: dial tcp 74.125.204.82:443: getsockopt: connection refused\n v1 ping attempt failed with error: Get https://gcr.io/v1/_ping: dial tcp 74.125.204.82:443: getsockopt: connection refused)"
3m 1m 4 {kubelet node-150} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause:2.0\""

[/sourcecode]

其中:

[sourcecode language="plain"]
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/: dial tcp 74.125.204.82:443: getsockopt: connection refused\n v1 ping attempt failed with error: Get https://gcr.io/v1/_ping: dial tcp 74.125.204.82:443: getsockopt: connection refused)
[/sourcecode]

不难看出,无法访问到gcr.io

有如下解决办法:

翻墙

修改hosts文件(这里我用的是"61.91.161.217 gcr.io",但是可能会失效)

从其他源下载容器"pause:2.0",然后打tag为"gcr.io/google_containers/pause:2.0"

赞(0)
未经允许不得转载:工具盒子 » 使用kubernetes创建容器一直处于ContainerCreating状态的原因查找与解决