升级相关
本文介绍从 v3.1.x 升级到 v3.2.x 的步骤以及注意事项。
版本升级建议从相邻的版本升级,比如从 v3.0.x 升级到 v3.2.x 需要以下的步骤:
- v3.0.x => v3.1.x
- v3.1.x => v3.2.x
总体来说,升级的步骤如下:
- 更新 rpm 源,升级 ocadm
- 使用 ocadm 升级 OneCloud 服务
查看当前版本
可以使用 kubectl 查看当前集群的版本
# 使用 kubectl 获得当前集群的版本为 v3.1.3
$ kubectl -n onecloud get onecloudclusters default -o=jsonpath='{.spec.version}'
v3.1.3
更新 rpm repo
ocadm 和 climc 这些命令行工具是以 yum rpm 包的方式安装,所以升级之前需要先更新这两个工具,然后再使用 ocadm 升级 OneCloud 服务。
# 修改 baseurl,把 3.1 改成 3.2
$ sed -i 's|baseurl.*|baseurl=https://iso.yunion.cn/3.2|g' /etc/yum.repos.d/yunion.repo
# 更新 yunion-ocadm, yunion-climc
$ yum clean all
$ yum install -y yunion-ocadm yunion-climc
# 查看 ocadm 版本
$ ocadm version -o short
tags/v3.2.3(90b9c0ccc)
更新 OneCloud 服务
# 使用 ocadm 更新 onecloud operator 以及相关服务到 v3.2.3 版本
# 该步骤会因为拉取 docker 镜像等待较长时间,请耐心等待
$ ocadm cluster update --operator-version v3.2.3 --version v3.2.3 --wait
# 另外可以在升级的过程中使用 kubectl 查看对应 pods 的升级情况
$ kubectl get pods -n onecloud --watch
已知问题
升级到 v3.2 后,出现 Web 前端无法访问
问题原因: 该问题是由于 v3.2 之前版本进行UI迁移工作,导致前端访问 URL 中多了 v1 和 v2 版本的字段,而 v2.2 版本 Web 前端已全部迁移到 v2 版本,前端访问的 URL 中去掉了版本字段。而从 v3.1 升级到 v3.2 的 nginx 配置中默认带着版本字段,导致无法访问 Web 前端。
解决办法: 在控制节点上删除 web 服务的 nginx configmap 配置文件,并重启 web 服务即可。
# 删除 default-web 的 configmap 文件
$ kubectl delete configmap -n onecloud default-web
# 重启 default-web 服务
$ kubectl rollout restart deployment -n onecloud default-web
升级到 v3.2 后,notify pod 运行状态不正常
问题原因: 该问题时由于升级到 v3.2 版本后,notify 服务的 configmap 相对于之前版本有变动,而升级过程中不会删除旧的 configmap 导致。
解决办法: 在控制节点上手动删除 notify 服务的 configmap 文件,并重启 notify 服务即可。
# 删除 default-notify 的 configmap 文件
$ kubectl delete configmap -n onecloud default-notify
# 重启 default-notify deployment
$ kubectl rollout restart deployment -n onecloud default-notify
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
Last modified 01.01.0001