更新时间:2024-12-03 16:04:47

1 更新包准备

本次安装所涉及的更新包只需要上传到任一master节点上。

  1. 建立远程连接:使用SSH(比如Xshell、Putty等)工具,通过IP地址连接服务器后台,默认用户名root,默认port是22,密码为安装操作系统时设置的密码。
  2. 创建更新包目录:在/root目录下创建目录 mkdir -p ~/Upgradepackage/module/
  3. 上传更新检查工具:使用TFTP工具将预先下载到本地的upgrade_check_tool_*.tar.gz上传到 ~/Upgradepackage/
  4. 上传依赖包:使用TFTP工具将预先下载到本地的依赖包上传到 ~/Upgradepackage/
  5. 上传服务包:使用TFTP工具将预先下载到本地的部署工作台(镜像包、package包)、身份认证服务(镜像包、产品包)以及规划的产品模块化服务安装包,上传到 ~/Upgradepackage/module/

注:x86平台请上传x86的依赖包和安装包,ARM平台请上传ARM的依赖包和安装包。

2 环境检查

进入Upgradepackage目录下解压更新检查工具:

cd ~/Upgradepackage && tar -zxf upgrade_check_tool_*.tar.gz

进入到解压后的目录,进行环境更新预检(x86执行示例):

./pre-check_tool_x86

  • ARM环境执行pre-check_tool_arm工具
  • 执行完成之后,根据预检生成的报告结果去准备好更新环境。

预期结果示例

环境检查 执行示例.png

3 推送镜像包和产品包

推送镜像前根据需要可以进行镜像的清理,清理步骤见 运维操作-其他-清除镜像

进行更新时,所有服务的镜像包均可使用proton-cli提前推送,推送镜像不影响业务正常使用,推送过程中业务无需停机。

注:确认已将安装包(镜像包、产品包) 上传到了 ~/package/module 目录下,(自定义命名空间默认为anyshare)

proton-cli package push --package ~/Upgradepackage/module/ -n 自定义命名空间

【说明】目录下存在非服务包和镜像包的其他文件,由于该类文件不支持推送,将在最终的推送报告中显示未知文件格式推送失败,该类错误忽略即可,仅需关注需要推送的镜像及产品包是否推送成功。

4 更新依赖包

注意:仅以X86平台举例

进入Upgradepackage目录下解压依赖:

cd ~/Upgradepackage && tar zxf proton-*.tar.gz

解压包 示例.png

cd proton-packages && ./install_deps.sh --hosts {node1},{node2},{node3}

  • 其中 {node1},{node2},{node3} 为对应节点IP,以“,”分隔
  • 各节点默认使用root用户、SSH 22端口

预期结果示例

执行安装  示例.png

安装依赖成功 示例.png

5 更新基础服务

注意:需要在新版本依赖包的解压目录下执行更新配置操作,以下操作均在解压后的依赖包路径下执行

5.1 更新内置的基础服务

主要包括内置的MariaDB、MongoDB、Redis、Kafka/NSQ、OpenSearch等

在任意一master节点上,执行命令,获取配置文件(自定义命名空间默认为anyshare):
proton-cli get conf -n 自定义命名空间 > upgrade_conf.yaml

预期结果示例

默认命名空间获取配置文件 示例.png

自定义命名空间获取配置文件 示例.png

执行命令,进行配置更新:

proton-cli apply -f upgrade_conf.yaml

5.2 ECeph依赖更新说明

如果环境中融合部署了ECeph,此时会同步更新ECeph组件。完整更新流程,可参考运维更新-产品版本更新-对象存储服务ECeph更新。如果不需要更新ECeph,可修改upgrade_conf.yaml, 跳过ECeph更新。

编辑upgrade_conf.yaml文件,搜索eceph配置块,增加一行skip_eceph_update: true

忽略eceph更新.png

6 更新部署工作台

第一步 解压部署工作台package包
tar -zxvf Proton-DeploymentStudio-*-package.tgz

注意:解压部署工作台package包之后,需要再次执行推送产品包操作

即”推送镜像包和产品包“节的命令:proton-cli package push --package ~/Upgradepackage/module/ -n 自定义命名空间

第二步 进入解压后的目录,更新mini-deploy(自定义命名空间默认为anyshare)

cd proton-deploy-* && ./mini-deploy -n 自定义命名空间

安装最小化安装服务成功 示例.png

第三步 更新成功后查看deploy-installer-0是否正常启动,查看命令如下

查看服务运行状态 示例.png

第四步 更新部署工作台进入【服务管理】--【服务部署】页面,选中DeploymentStudio,点击【更新】

更新页面 示例.png

  1. 进入①【选择版本】(以实际发布版本为准),点击【下一步】,以下图为示例:

    选择版本 示例.png

  2. 进入②【填写配置项】,填写完成之后点击【提交】确认配置,点击【下一步】,以下图为示例:

    填写配置项页面 示例.png

  3. 进入③【确认信息】,点击【确定】,执行更新

    确认信息页面 示例.png

  4. 等待更新完成,可在【服务监控】页面查看更新进度,当状态变为【成功】时,表示更新完成

    更新运行中 示例.png

    更新成功 示例.png

7 更新身份认证服务

通过部署工作台-服务管理-服务部署的可视化页面进行身份认证服务(IdentifyAndAuthentication)的更新,详细操作见 部署工作台功能介绍-服务管理-服务部署

注意:
如果安装了 AnyShare 主模块:

  1. 身份认证服务更新期间,会有几分钟无法访问文档,请不要在业务繁忙期间更新版本
  2. 身份认证服务更新完后,需要重启 AnyShare 主模块中的 document 微服务,操作参考:kubectl get pod -n anyshare|grep document-[^ds]| awk '{print $1}'|xargs -I {} kubectl delete pod -n anyshare {}

没有安装 AnyShare 主模块的环境,不需要处理;其他服务不受影响。

8 更新产品服务

通过部署工作台-服务管理-服务部署的可视化页面进行各产品服务的更新,详细操作见 部署工作台功能介绍-服务管理-服务部署

在更新服务的时候,基于默认值即可,如果需要基于环境做定制化配置,可以参考 服务参数详解