docker - 使用kubernetes创建容器一直处于ContainerCreating状态
習慣沉默
習慣沉默 2017-04-27 09:03:06
0
3
1788

运行容器命令:

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

查看pods状态

[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
習慣沉默
習慣沉默

Antworte allen(3)
伊谢尔伦

使用kubectl describe pod my-alpine-2150523991-knzcx查看pod在创建的过程中的事件,或许有惊喜

小葫芦

根据1楼的回复找到了解决办法:

执行如下命令:

[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\""

其中:

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文件

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

阿神

gcr.io被墙了,可以给kubelet加上一个参数--pod-infra-container-image来指定一个国内的镜像。

我们搬了一个image到registry.aliyuncs.com/archon/pause-amd64:3.0,可以用它。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage