一:问题描述
本周,通过kubernetes
搭建企业级jupyterhub
服务的时候,遇到个问题:
通过helm
部署jupyterhub
的时候,hook-image-puller-b8p5p
这个pod
一直无法启动,反复于 ErrImagePull
和 ImagePullBackOff
两个状态,如下
[zhanhaitao@master ~]$ kubectl -n jhub get pods
NAME READY STATUS RESTARTS AGE
hook-image-awaiter-qpsw6 1/1 Running 0 68s
hook-image-puller-b8p5p 0/1 ErrImagePull 0 68s
二:系统环境
centos:7.1版本
k8s 版本:1.13.2
helm 版本:v2.13.1
k8s集群是参考官网的用户手册通过kubeadm完成搭建的,一个master,一个node
jupyterhub的配置文件:
[zhanhaitao@master ~]$ cat config.yaml
proxy:
secretToken: ebcf616d2ae617e67bf8d5c93c4b131abb25adf5849d68a5be51bc922ef072c7
https:
enabled: false
部署命令:
[zhanhaitao@master ~]$ helm upgrade --install jhub jupyterhub/jupyterhub \
> --namespace jhub \
> --version=0.8.2 \
> --values config.yaml
三:问题分析
status=ErrImagePull
和 ImageBackOff
,通过字面分析,应该是k8s
启动pod
时候,拉取镜像失败导致。
ImageBackOff
是k8s
中一个镜像相关的常见问题,一般导致的原因主要有如下几个:
1.镜像是本公司的私服镜像
2.镜像写法不对或者版本不对
3.镜像所在仓库无法访问,或者访问超时
3.1 确定具体的问题镜像
下面来分析是上面哪个原先导致,在k8s
中,大部分的问题,都能通过logs
和describe
两个命令进行分析和定位
[zhanhaitao@master ~]$ kubectl -n jhub logs hook-image-puller-b8p5p
Error from server (BadRequest): container "pause" in pod "hook-image-puller-b8p5p" is waiting to start: trying and fa