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

来源:互联网 发布:年老才知陪伴 编辑:程序博客网 时间:2024/05/03 07:04

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

运行容器命令:

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

查看pods状态

[root@master-149 ~]# kubectl get podsNAME                         READY     STATUS              RESTARTS   AGEmy-alpine-2150523991-knzcx   0/1       ContainerCreating   0          6mmy-alpine-2150523991-lmvv5   0/1       ContainerCreating   0          6m

一直处于ContainerCreating状态,开始查找原因
执行如下命令:

[root@master-149 ~]# kubectl describe pod my-alpineName:my-alpine-2150523991-knzcxNamespace:defaultNode:node-150/192.168.10.150Start Time:Sat, 19 Nov 2016 18:20:52 +0800Labels:pod-template-hash=2150523991,run=my-alpineStatus:PendingIP:Controllers:ReplicaSet/my-alpine-2150523991Containers:  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:  TypeStatus  Ready False No volumes.Events:  FirstSeenLastSeenCountFromSubobjectPathTypeReasonMessage  ------------------------------------------------------------  7m7m1{default-scheduler }NormalScheduledSuccessfully assigned my-alpine-2150523991-knzcx to node-150  6m6m1{kubelet node-150}WarningFailedSyncError 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)"  4m47s3{kubelet node-150}WarningFailedSyncError 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)"  4m8s6{kubelet node-150}WarningFailedSyncError 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-lmvv5Namespace:defaultNode:node-150/192.168.10.150Start Time:Sat, 19 Nov 2016 18:20:52 +0800Labels:pod-template-hash=2150523991,run=my-alpineStatus:PendingIP:Controllers:ReplicaSet/my-alpine-2150523991Containers:  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:  TypeStatus  Ready False No volumes.Events:  FirstSeenLastSeenCountFromSubobjectPathTypeReasonMessage  ------------------------------------------------------------  7m7m1{default-scheduler }NormalScheduledSuccessfully assigned my-alpine-2150523991-lmvv5 to node-150  5m1m3{kubelet node-150}WarningFailedSyncError 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)"  3m1m4{kubelet node-150}WarningFailedSyncError syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"gcr.io/google_containers/pause:2.0\""

其中:

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)

不难看出,无法访问到gcr.io
有如下解决办法:

  1. 翻墙
  2. 修改hosts文件(这里我用的是“61.91.161.217  gcr.io”,但是可能会失效)
  3. 从其他源下载容器“pause:2.0”,然后打tag为“gcr.io/google_containers/pause:2.0”
1 0
原创粉丝点击