前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenShift升级到3.6后,代码构建报错问题的解决

OpenShift升级到3.6后,代码构建报错问题的解决

作者头像
魏新宇
发布2018-03-22 16:43:34
1.4K0
发布2018-03-22 16:43:34
举报

OCP3.5到3.6在线升级步骤概要

笔者前两天将笔记本实验环境的OpenShift3.5升级到3.6。由于我采取在线升级方式,步骤并不复杂,大致步骤如下

(https://docs.openshift.com/container-platform/3.6/install_config/upgrading/automated_upgrades.html#preparing-for-an-automated-upgrade):

升级之前查看版本:

开始准备升级,master和所有的node都需要执行:

在master执行,选择第二项:

确认升级:

接下来,开始升级步骤:

过了一段时间,升级成功。升级成功以后,重启所有节点。

查看OCP和K8S版本:

查看OCP节点状态:

查看docker版本:

UI登录OCP 3.6:

备注:我升级OCP的时候,在家里升级,因此访问cdn有时候不稳定,出现较多如下报错:

后来修改docker配置文件后,问题有所缓解(所有节点反注释如下行,然后重启docker服务):

vi /etc/sysconfig/docker

升级以后代码构建失败

笔者将笔记本实现环境的OpenShift从3.5升级到3.6以后,原有项目中的pod build失败:

查看构建失败原因:

查看详细信息:

Failed to pull image "172.30.28.70:5000/grey2/v1@sha256:a0a737c874226b2cee1ffd692ebffe20a0001688d5111657effde900d0946bb0": rpc error: code = 2 desc = Get https://172.30.28.70:5000/v2/: dial tcp 172.30.28.70:5000: getsockopt: no route to host

Build失败的原因是:代码构建成功后,将image向docker-registry push的时候失败。

为了验证docker-registry是否存在问题,接下来手工登录docker-registry,查看能否手工push一个镜像上去。

先查看docker-registry的IP:

这时候,发现docker-registry的IP以后发生了变化,不是报错显示的172.30.28.70旧IP。

没关系,先手工登录docker-registry容器。

第一步,登录master:

第二步:获取token:

第三步:登入docker-registry

登录失败,报错如下:

docker login -u admin -p A2diqg_Lsthnm8180s7NR2c1QzHJMf3fx67rhsxyCAs 172.30.76.236:5000

Error response from daemon: Get https://172.30.76.236:5000/v1/users/: http: server gave HTTP response to HTTPS client

经过搜索和查询,在互联网上搜到了线索(问题面描述和我遇到的非常类似):

参考该文档,在左右的节点修改配置文件: /etc/sysconfig/docker,增加如下内容:

然后在所有节点上重启docker服务:

接下来,再次尝试登陆docker-registry,登陆成功:

第四步:将本地docker镜像库的一个docker image打tag:

先用docker images找一个小一点的镜像:

打tag:

然后向docker-registry push镜像:

可以成功,说明目前docker-registry没问题。

再次出发代码build,依然报错。问题依旧:

Failed to pull image "172.30.28.70:5000/grey2/v1@sha256:a0a737c874226b2cee1ffd692ebffe20a0001688d5111657effde900d0946bb0": rpc error: code = 2 desc = Get https://172.30.28.70:5000/v2/: dial tcp 172.30.28.70:5000: getsockopt: no route to host

此时,尝试查看bc中是否有旧的docker-registry的IP,没有找到:

因此怀疑缓存中的docker-registry依然是旧IP,重启OCP的master和node IP:

再次手工触发代码构建,成功!

问题解决!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档