通过 ocboot 升级
介绍如何通过 ocboot 升级服务版本到指定版本。
提示
ocboot 只能升级通过 ocboot 部署的环境,如果你的环境是通过 docker compose 或者 helm 部署的,请参考对应部署文档里面的升级操作。
前提条件
版本升级建议从相邻的版本升级,比如从 v3.8.x 升级到 v3.10.x 需要以下的步骤:
- v3.8.x => v3.9.x
- v3.9.x => v3.10.x
总体来说,升级的步骤如下:
使用我们编写的 ocboot 工具进行升级,这个工具主要是调用 ansible 来升级集群里面的所有节点。
查看当前版本
可以使用 kubectl 查看当前集群的版本
# 使用 kubectl 获得当前集群的版本
$ kubectl -n onecloud get onecloudclusters default -o=jsonpath='{.spec.version}'
v3.10.15 # 发现当前版本为 v3.10.15
下载 ocboot 工具
提示
如果本地已经有都应版本的代码,可以跳过下面的步骤,但一般情况下,随着每次新版本发布,都会有对应的 ocboot 部署工具发布,需要使用对应的版本来更新。
下载部署工具
部署的工具代码在 https://github.com/yunionio/ocboot/release,选择对应的版本,把代码的 tar.gz 包下载下来。
$ wget https://github.com/yunionio/ocboot/archive/refs/tags/master-v3.11.12-5.tar.gz
$ tar xf master-v3.11.12-5.tar.gz
$ cd ocboot-master-v3.11.12-5
升级服务组件
前提
更新服务的原理是通过本机 ssh 免密码远程登录到集群的第一个控制节点,获取所有节点的信息后,然后通过 ansible 执行 playbook 更新,所以有以下要求:
- 本机能够 ssh 远程登录 PRIMARY_MASTER_HOST
- PRIMARY_MASTER_HOST 能够 ssh 免密码登录集群中的其它节点
如果没有设置免密码登录,请使用 ssh-copy-id -i ~/.ssh/id_rsa.pub root@PRIMARY_MASTER_HOST 命令把公钥下发到自己环境对应的节点。
可升级的版本号可以到 发布日志 3.11 页面 查询。