定位“kubernetes pod卡在ContainerCreating状态”问题的方法

来源:互联网 发布:长高知乎 编辑:程序博客网 时间:2024/05/18 22:40

经过千辛万苦终于在本地搭建k8s环境后,昨天在调试的时候有出现了pod卡在ContainerCreating状态的问题。

这个问题的原因有几种,我遇到的问题是拉去image失败,如“image pull failed for gcr.io/google_containers/pause:2.0”。原来k8s默认从gcr.io/google_containers拉去镜像,国内网络无法访问。原来忘了连接VPN了…

问题是比较低级,其实主要是想跟大家分享下定位的方法。主要是通过“kubectl describe pod PodName”指令查看pod发生的事件,从事件列表中可以查找到错误信息。

vagrant@vagrant-ubuntu-trusty-64:~/work/k8s-foo$ kubectl run foo --image=hello-worlddeployment "foo" createdvagrant@vagrant-ubuntu-trusty-64:~/work/k8s-foo$ kubectl get podsNAME                        READY     STATUS              RESTARTS   AGEfoo-928603113-igh2x         0/1       ContainerCreating   0          4mvagrant@vagrant-ubuntu-trusty-64:~/work/k8s-foo$ kubectl describe pod fooName:       foo-928603113-igh2xNamespace:  defaultNode:       127.0.0.1/127.0.0.1Start Time: Mon, 11 Apr 2016 15:11:49 +0000Labels:     pod-template-hash=928603113,run=fooStatus:     PendingIP:     Controllers:    ReplicaSet/foo-928603113Containers:  foo:    Container ID:       Image:      hello-world    Image ID:           Port:           QoS Tier:      memory:       BestEffort      cpu:      BestEffort    State:      Waiting      Reason:       ContainerCreating    Ready:      False    Restart Count:  0    Environment Variables:Conditions:  Type      Status  Ready     False Volumes:  default-token-fbasq:    Type:   Secret (a volume populated by a Secret)    SecretName: default-token-fbasqEvents:  FirstSeen LastSeen    Count   From            SubobjectPath   Type        Reason      Message  --------- --------    -----   ----            -------------   --------    ------      -------  7m        7m      1   {default-scheduler }            Normal      Scheduled   Successfully assigned foo-928603113-igh2x to 127.0.0.1  4m        4m      1   {kubelet 127.0.0.1}         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: (API error (500): unable to ping registry endpoint https://gcr.io/v0/\nv2 ping attempt failed with error: Get https://gcr.io/v2/: dial tcp 74.125.203.82:443: i/o timeout\n v1 ping attempt failed with error: Get https://gcr.io/v1/_ping: dial tcp 74.125.203.82:443: i/o timeout\n)"

晚间尝试启动kube-dns时也遇到了类似的问题。查看kube-dns Service时一切正常:

vagrant@vagrant-ubuntu-trusty-64:~/work/k8s-foo$ kubectl get services kube-dns --namespace=kube-systemNAME       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGEkube-dns   10.0.0.10    <none>        53/UDP,53/TCP   56m

但启动一个Service之后尝试使用Service名称解析dns却失败了。执行“kubectl get pods –namespace=kube-system”查看发现kube-dns相关pod启动失败了。

再通过“kubectl describe”查看相关pod的事件时发现原来kube-dns启动时也需要下载新镜像。果断开启VPN,再重启集群,over。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 药店买的药贵了怎么办 神经损伤小便少尿不出来怎么办 手指夹伤出血了怎么办 手指夹破流血了怎么办 喂了宝宝熊胆粉怎么办 不小心擦伤了皮怎么办 吃了减肥药拉肚子怎么办 遇到他心通的人怎么办 被茅山术害了怎么办 鱼缸鱼身上烂了怎么办 鳄鱼龟皮肤烂了怎么办 墨水渗透进皮肤里了怎么办 中药渗透到皮肤里怎么办 甘露醇渗透到皮肤下怎么办 水银弄到眼睛里怎么办 水银粘到皮肤上怎么办 榴莲和虾同吃了怎么办 吃榴莲和虾中毒怎么办 榴莲和虾一起吃怎么办 狗被别人下毒了怎么办 大掌门2没存元宝怎么办 大掌门2转换阵容怎么办 率土之滨s2绝版怎么办 异界气息的装备怎么办 vivo电板没电了怎么办 门套拼接有缝隙怎么办 公司如果一直没有上税收入怎么办 赛车输了俩百万怎么办 交pk金员工不交怎么办 员工不想交pk金怎么办 心悦光环领错角色怎么办 心悦光环领错了怎么办 扑克牌1到13洗后怎么办 南通长牌没钱了怎么办 镇魔曲手游阵营人数已满怎么办 镇魔曲忘记在哪个区怎么办 登录镇魔曲卡在实名验证怎么办 电脑玩联盟花屏怎么办 优盘文件或目录损坏怎么办 苹果下吃鸡设备不兼容怎么办 龙之谷账号忘了怎么办