首页  >  问答  >  正文

docker - 使用kubernetes创建容器一直处于ContainerCreating状态

运行容器命令:

[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
習慣沉默習慣沉默2704 天前1704

全部回复(3)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-04-27 09:05:06

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-27 09:05:06

    根据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”

    回复
    0
  • 阿神

    阿神2017-04-27 09:05:06

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

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

    回复
    0
  • 取消回复