CloudOS 子集群上的pod无法启动,状态“ImagePullBackOff”
1、通过kubectl describe pod -n <namespace> <pod name>查看原因。
2、获取不到容器镜像的原因,可能是容器镜像不存在或与harbor镜像仓库无法连接,通过报错来看,后者的可能性较大。通过curl命令测试与harbor镜像仓库的连通性,并尝试手工拉取镜像都失败了。
尝试从CloudOS管理节点尝试pull此镜像正常,说明harbor镜像仓库是可以正常提供服务的。所以现场子集群无法从harbor拉取镜像可能是CloudOS管理节点到子集群存在安全策略的限制。
临时方案:
1、由于管理节点可以正常拉取镜像,将管理节点的镜像手工拷贝到子集群的各节点上。
a) 登录到cloudos管理节点 ,执行:
docker pull os-harbor-svc.default.svc.cloudos:443/helm/initpostgres:E5132H03-V500R001B03D005HP03-RC2
b) 打包镜像:
docker save -o postgres.tar os-harbor-svc.default.svc.cloudos:443/helm/initpostgres:E5132H03-V500R001B03D005HP03-RC2
c) 拷贝镜像到子集群各节点:
scp postgres.tar root@172.16.3.10:/root
d) 在子集群节点的后台加载镜像
docker load -i postgres.tar
e) 在子集群的各节点加载镜像后,等几分钟pod即可恢复。
彻底解决方案:
2、放通子集群与CloudOS管理节点的必要端口。
放通子集群与CloudOS管理节点的必要端口。方法1仅通过手工拷贝的方式临时将镜像拷贝到了子集群,但子集群仍然无法拉取harbor镜像仓库中的镜像,后续仍然有容器无法运行的风险,所以彻底解决该问题,需要将cloudos管理平台的必要端口方通给子集群各节点。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作