跳转至

部署和维护 / 升级和重启

本文主要介绍如何升级和重启 DataFlux Func。

1. 升级系统

当前版本的 DataFlux Func 在升级时,不需要额外特殊操作,按照正常安装步骤使用新版本安装即可。

安装脚本会自动识别已经安装的 DataFlux Func,并完成关闭服务,更换镜像,重新启动的一系列操作。

此外,在 DataFlux Func 首次安装后,会将安装目录写入/etc/dataflux-func文件,因此在升级时,安装脚本也能够自动找到之前的安装目录,用户所有的数据都会保留。

可以在命令行中使用 cat /etc/dataflux-func 查看当前记录的安装目录

详细安装文档请参考 部署和维护 / 安装部署 / 单机部署

1.2 从 3.4.0 以前版本升级

从 3.4.0 开始,DataFlux Func 基础镜像从 Ubuntu 20.04 升级为 22.04。与此同时,所依赖的 Docker 版本也从原先的 20.10.8 改为 23.0.6 版本。

因此,将 3.4.0 以前版本的 DataFlux Func 升级到最新版时,自动安装脚本会检测当前 Docker 版本并提示是否重新安装 Docker:

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
The current version of the DataFlux Func prefers another version of Docker
  Current Docker (docker --version):
    -> 20.10.8
  DataFlux Func prefers:
    -> 23.0.6

Reinstalling Docker will stop the docker service and shut down all running containers, this will make all your service unavailable!

Do you want to reinstall the Docker 23.0.6 (current: 20.10.8) ?
  -> abort    : Stop and do nothing
  -> skip     : Skip reinstalling Docker, use current version of Docker and continue to install DataFlux Func
  -> reinstall: Reinstall Docker and install DataFlux Func
Your choice:

用户可以输入需要进行的具体操作:

输入 说明
abort 中断安装,什么都不要做
skip 不要更新 Docker,直接升级 DataFlux Func
reinstall 重新 Docker,之后升级 DataFlux Func

如果宿主机中的 Docker 不是由 DataFlux Func 安装包自动安装的 Docker,请自行升级 Dockers,请勿使用一键安装包重新安装

如果宿主机的 Docker 除了 DataFlux Func 以外,还运行有服务,请确认重新安装 Docker 是否会对业务产生影响

在用户选择 reinstall 后,会有 10 秒时间等待用户按 CTRL + C 中断重新安装 Docker:

Text Only
1
2
3
Your choice: reinstall
[Reinstall Docker and install DataFlux Func]
You have 10 second to interrupt this action by pressing CTRL + C

2. 重启系统

需要重新启动时,请按照以下步骤进行:

  1. 使用docker stack rm dataflux-func命令,关停 DataFlux Func(此步骤可能需要一定时间)
  2. 使用docker ps确认所有容器都已经退出
  3. 使用docker stack deploy dataflux-func -c {安装目录}/docker-stack.yaml --resolve-image never重启所有服务

由于安装包中的镜像文件本身已经导入本地,加上 --resolve-image never 参数可以避免 Docker 在启动容器时进行无意义的镜像检查

如果嫌麻烦,你也可以使用原来的安装包重新安装一遍 DataFlux Func 来完成「重启」