跳转至

部署和维护 / 系统要求

安装 DataFlux Func 之前,请务必确认环境已经满足以下条件。

1. 系统要求

运行 DataFlux Func 的主机需要满足以下条件:

  • CPU 核心数 >= 2
  • 内存容量 >= 4GB
  • 磁盘空间 >= 20GB
  • 网络带宽 >= 10Mbps
  • 操作系统为 Ubuntu 16.04 LTS / CentOS 7.2 以上,不支持 macOS、Windows
  • 纯净系统(安装完操作系统后,除了配置网络外没有进行过其他操作)
  • 开放8088端口(本系统默认使用8088端口,请确保防火墙、安全组等配置允许8088入方向访问)
  • 使用外部 MySQL 时,MySQL 版本必须为 5.7 以上,开启innodb_large_prefix参数,且数据库编码为utf8mb4
  • 使用外部 Redis 时,Redis 版本必须为 5.0 以上,至少 1 GB 可用内存,非集群版

阿里云 ECS 的云盾插件

阿里云 ECS 的云盾插件本身占用资源较多,系统配置应适当提高

详细操作系统兼容性

详细操作系统兼容性实测结果,可参考 已实测操作系统兼容性

如希望在树莓派上安装,请参考以下文章:

2. 软件准备

本系统基于 Docker Stack 运行,而安装包本身已经自带了 Docker 的安装包并会在安装时自动安装。

用户也可以自行安装 Docker 并初始化 Docker Swarm,然后运行安装脚本, 安装脚本在发现 Docker 已经安装后会自动跳过这部分处理。

  • Docker Swarm 初始化命令为:sudo docker swarm init

如果本机存在多个网卡,需要在上述初始化命令中指定网卡

  • 存在多网卡的建议用户自行安装 Docker 并初始化 Docker Swarm
  • Docker Swarm 指定网卡的初始化命令为:sudo docker swarm init --advertise-addr={网卡名} --default-addr-pool={默认地址池}
  • 本机网卡列表可以通过ifconfig或者ip addr查询
  • 默认地址池注意不要与本地网络子网冲突

Snap 版 Docker

DataFlux Func 不支持在 Snap 版 Docker 上运行

自动安装脚本中的 docker swarm init

自动安装脚本在进行 docker swarm init 时,--advertise-addr 和 --default-addr-pool 参数会分别指定为 127.0.0.1 和 10.255.0.0/16

Bash
1
docker swarm init --advertise-addr=127.0.0.1 --default-addr-pool=10.255.0.0/16

3. 已实测的操作系统兼容性

本系统运行依赖 Docker Swarm,部分比较旧的 Linux 发行版可能不支持新版 Docker,导致无法安装本系统。

对于「实测环境」:

  • 虚拟机:均使用官方 ISO 镜像,安装后直接部署 DataFlux Func
  • 阿里云:均使用 ECS 公共镜像,ECS 启动后直接部署 DataFlux Func
  • 树莓派:均为官方网站提供的 ISO 镜像(ARM 64 位运行),启动后直接部署 DataFlux Func

对于「实测结果」:

  • 兼容:表示安装/创建好主机后,直接运行安装脚本即可完成安装,无需任何额外操作
  • 有条件兼容:表示安装/创建好主机后,不能直接运行安装脚本,需要进行额外操作后才能执行安装脚本
  • 不兼容:表示使用安装脚本无法在此环境正确执行,但您可以使用镜像文件自行处理

测试结果

以下列出的操作系统表示在云平台或虚拟机实际装机,并运行测试通过,未列出的不代表不兼容

需要 64 位系统

DataFlux Func 需要运行在 64 位系统中。官方 Raspberry Pi OS 也需要开启 ARM 64 位模式运行

暂不支持 Windows、macOS

DataFlux Func 暂不支持 Windows、macOS,您可以选择在虚拟机、云主机中安装

x86 架构

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Ubuntu 22.04 阿里云 5.1.024.0.9
5.0.523.0.6
Ubuntu 20.04 阿里云 5.0.523.0.6
Ubuntu 18.04 阿里云 5.0.523.0.6
Ubuntu 16.04 阿里云 5.0.523.0.6

原版镜像

操作系统 实测环境 实测版本 实测结果 备注
Ubuntu 20.04 LTS VirtualBox 2.x20.10.8
Ubuntu 18.04 LTS VirtualBox 2.x20.10.8
Ubuntu 16.04 LTS VirtualBox 2.x20.10.8
Ubuntu 14.04 LTS VirtualBox 2.x20.10.8 因 Docker 新特性要求,无法使用新版 Docker

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
CentOS 8.5 阿里云 2.x20.10.8
CentOS 8.4 阿里云 2.x20.10.8
CentOS 8.3 阿里云 2.x20.10.8
CentOS 8.2 阿里云 2.x20.10.8
CentOS 8.1 阿里云 2.x20.10.8
CentOS 8.0 阿里云 2.x20.10.8
CentOS 7.9 阿里云 2.x20.10.8
CentOS 7.8 阿里云 2.x20.10.8
CentOS 7.7 阿里云 2.x20.10.8
CentOS 7.6 阿里云 2.x20.10.8
CentOS 7.5 阿里云 2.x20.10.8
CentOS 7.4 阿里云 2.x20.10.8
CentOS 7.3 阿里云 2.x20.10.8
CentOS 7.2 阿里云 2.x20.10.8 原版 CentOS 7.2 镜像版本过低,无法使用overlay2,默认使用非联合文件系统vfs,会导致磁盘占用过大
但阿里云公共镜像的 CentOS 7.2 升级过内核可以正常使用overlay2
CentOS 6.10 阿里云 2.x20.10.8 因 Docker 新特性要求,无法使用新版 Docker

原版镜像

操作系统 实测环境 实测版本 实测结果 备注
CentOS 7.9 VirtualBox 5.0.523.0.6 镜像来自 阿里云开源镜像站 / CentOS 7.9.2009 / CentOS-7-x86_64-Minimal-2009.iso

阿里云公共镜像

操作系统 实测版本 实测结果 备注
Debian 10.2 "buster" 阿里云 2.x20.10.8
Debian 9.6 "stretch" 阿里云 2.x20.10.8
Debian 8.11 "jessie" 阿里云 2.x20.10.8

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
AlmaLinux 9.0 64 位 阿里云 2.x20.10.8
AlmaLinux 8.6 64 位 阿里云 2.x20.10.8
AlmaLinux 8.5 64 位 阿里云 2.x20.10.8

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Fedora 35 64 位 阿里云 2.x20.10.8
Fedora 34 64 位 阿里云 2.x20.10.8
Fedora 33 64 位 阿里云 2.x20.10.8

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
OpenSUSE 15.4 64 位 阿里云 2.x20.10.8 需要事先安装 Docker,并配置 Docker Swarm
详细请参考 SUSE / Docker Open Source Engine Installation

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
SUSE Linux Enterprise Server 15 SP3 64 位 阿里云 2.x20.10.8 需要事先安装 Docker,并配置 Docker Swarm
详细请参考 SUSE / Docker Open Source Engine Installation

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Rocky Linux 8.6 64 位 阿里云 2.x20.10.8
Rocky Linux 8.5 64 位 阿里云 2.x20.10.8

x86 架构(国产)

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
龙蜥 Anolis OS 8.8 ANCK 64 位 等保 2.0 三级版 阿里云 5.0.523.0.6 请在root用户下进行安装
运行/root/cybersecurity.sh不影响兼容性
龙蜥 Anolis OS 8.8 ANCK 64 位 阿里云 5.0.523.0.6
龙蜥 Anolis OS 8.8 RHCK 64 位 阿里云 5.0.523.0.6
龙蜥 Anolis OS 8.6 ANCK 64 位 阿里云 5.0.523.0.6
龙蜥 Anolis OS 8.6 RHCK 64 位 阿里云 5.0.523.0.6
龙蜥 Anolis OS 8.4 ANCK 64 位 阿里云 2.x20.10.8
龙蜥 Anolis OS 8.4 RHCK 64 位 阿里云 2.x20.10.8

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Alibaba Cloud Linux 3.2104 LTS 64 位 等保 2.0 三级版 阿里云 2.x20.10.8 请在root用户下进行安装
运行/root/cybersecurity.sh不影响兼容性
Alibaba Cloud Linux 2.1903 LTS 64 位 等保 2.0 三级版 阿里云 2.x20.10.8 请在root用户下进行安装
运行/root/cybersecurity.sh不影响兼容性

原版镜像

操作系统 实测环境 实测版本 实测结果 备注
openEuler 24.03 LTS VirtualBox 5.0.523.0.6 原版系统需要安装 tar 后进行安装部署
openEuler 23.09 VirtualBox 5.0.523.0.6 原版系统需要安装 tar 后进行安装部署
openEuler 22.03 LTS VirtualBox 5.0.523.0.6 原版系统需要安装 tar 后进行安装部署
openEuler 20.03 LTS VirtualBox 5.0.523.0.6 原版系统需要安装 tar 后进行安装部署

原版镜像

操作系统 实测环境 实测版本 实测结果 备注
优麒麟 Ubuntu Kylin 20.04 LTS Pro VirtualBox 2.x20.10.8 系统已自带 Docker,需要事先手工初始化 Docker Swarm

阿里云镜像市场 / 中建材信息技术股份有限公司

操作系统 实测环境 实测版本 实测结果 备注
银河麒麟高级服务器操作系统(X86版)V10 阿里云 5.0.523.0.6

来源不详

操作系统 实测环境 实测版本 实测结果 备注
银河麒麟高级服务器操作系统V10(兆芯版) 物理机具体硬件及配置不详 5.0.523.0.6 由于操作系统与 Docker 兼容性原因,安装包自带的 Docker 23.0.6 无法运行,但 Docker 24.0.7 版本可以正常运行

阿里云镜像市场 / 中标软件有限公司

操作系统 实测环境 实测版本 实测结果 备注
中标麒麟高级服务器操作系统 阿里云 5.0.523.0.6 此操作系统 Linux 内核版本仅为 2.6,版本过低

ARM 架构

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Ubuntu 22.04 阿里云 5.0.523.0.6
Ubuntu 20.04 阿里云 5.0.523.0.6
Ubuntu 18.04 阿里云 2.x20.10.8

树莓派官方 Ubuntu 镜像

操作系统 实测环境 实测版本 实测结果 备注
Ubuntu 20.04 LTS 树莓派4B 8GB 版 2.x20.10.8 详细请参考 维护和部署 / 安装部署 / 树莓派 Ubuntu 部署

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
CentOS 8.3 阿里云 2.x20.10.8 Redis 报 Unsupported system page size 错误无法启动
详见下方 问题汇总
CentOS 7.9 阿里云 2.x20.10.8 Redis 报 Unsupported system page size 错误无法启动
详见下方 问题汇总

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Debian 10.9 "buster" 阿里云 2.x20.10.8

原版镜像

操作系统 实测环境 实测版本 实测结果 备注
Raspberry Pi OS (Debain 10 "buster") 树莓派4B 8GB 版 2.x20.10.8 需要树莓派开启arm64_bit模式
详细请参考 维护和部署 / 安装部署 / 树莓派官方系统部署

ARM 架构(国产)

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
龙蜥 Anolis OS 8.8 ANCK 64 位 等保 2.0 三级版 阿里云 5.0.523.0.6 请在root用户下进行安装
运行/root/cybersecurity.sh不影响兼容性
龙蜥 Anolis OS 8.8 ANCK 64 位 阿里云 5.0.523.0.6
龙蜥 Anolis OS 8.8 RHCK 64 位 阿里云 5.0.523.0.6 Redis 报 Unsupported system page size 错误无法启动
详见下方 问题汇总

阿里云公共镜像

操作系统 实测环境 实测版本 实测结果 备注
Alibaba Cloud Linux 3.2104 LTS 64 位 等保 2.0 三级版 阿里云 5.0.523.0.6 请在root用户下进行安装
运行/root/cybersecurity.sh不影响兼容性
Alibaba Cloud Linux 3.2104 LTS 64 位 阿里云 5.0.523.0.6

阿里云镜像市场 / 中建材信息技术股份有限公司

操作系统 实测环境 实测版本 实测结果 备注
银河麒麟高级服务器操作系统(ARM版)V10 阿里云 5.0.523.0.6 Redis 报 Unsupported system page size 错误无法启动
详见下方 问题汇总

阿里云镜像市场 / 统信软件技术有限公司

操作系统 实测环境 实测版本 实测结果 备注
统信服务器操作系统V20(1050u1a)ARM64版 阿里云 5.0.523.0.6 Redis 报 Unsupported system page size 错误无法启动
详见下方 问题汇总

4. 浏览器兼容性

本系统为 Web 应用,部分浏览器可能存在兼容问题无法使用

浏览器 实测结果
Chrome
Safari
Firefox
Microsoft Edge (webkit)
Opera
遨游浏览器
搜狗浏览器
QQ 浏览器
360 极速浏览器(极速模式,即 Chrome 模式)
360 极速浏览器(兼容模式,即 IE 模式)
Internet Explorer

X. 问题汇总

以下是部分操作系统不兼容 DataFlux Func 的问题汇总

升级内核 / 升级操作系统后无法启动

使用 docker logs {Server 容器 ID} 如发现以下,或类似报错:

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
node[9]: ../src/node_platform.cc:61:std::unique_ptr<long unsigned int> node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start(): Assertion `(0) == (uv_thread_create(t.get(), start_thread, this))' failed.
 1: 0xb57f90 node::Abort() [node]
 2: 0xb5800e  [node]
 3: 0xbc915e  [node]
 4: 0xbc9230 node::NodePlatform::NodePlatform(int, v8::TracingController*, v8::PageAllocator*) [node]
 5: 0xb1b3d1 node::InitializeOncePerProcess(int, char**, node::InitializationSettingsFlags, node::ProcessFlags::Flags) [node]
 6: 0xb1bc89 node::Start(int, char**) [node]
 7: 0x7f2ca389fd90  [/lib/x86_64-linux-gnu/libc.so.6]
 8: 0x7f2ca389fe40 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
 9: 0xa93f0e _start [node]
Aborted (core dumped)

这可能是由于当前操作系统与 Docker 不兼容导致(如:DataFlux Func 2.x 附带的是 Docker 20.10.8,在最新版本的操作系统上可能存在问题)

建议升级 DataFlux Func 到最新版,升级过程中,请允许安装脚本同时升级 Docker 版本,详细参见 部署和维护 / 升级和重启 / 升级系统

升级到更新版本的 Docker

如果最新版的 DataFlux Func 依然存在上述问题,用户也可以自行下载 Docker 官方二进制执行包,升级更新版本 Docker。

下载请访问 Docker 官方下载 https://download.docker.com/linux/static/stable/

或者阿里云镜像站 https://mirrors.aliyun.com/docker-ce/linux/static/stable/

内核版本过低导致无法使用 Overlay

Overlay 存储引擎需要 Linux 4.0+ 内核,或 3.10.0-514+ 版本的 RHEL/CentOS,参见:

Redis 镜像报 Unsupported system page size 错误

官方 Redis 镜像在某些 ARM 版操作系统上启动时,会发生<jemalloc>: Unsupported system page size错误,参见:

OpenSUSE / SUSE Linux 中安装 Docker 的命令摘录

请保证对 OpenSUSE / SUSE Linux 足够熟悉,并清楚以下代码含义的情况下进行操作

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 仅限 SUSE Linux Enterprise Server
SUSEConnect -p sle-module-containers/15.0/x86_64 -r ''

# 安装 Docker
zypper install docker
systemctl enable docker.service
systemctl start docker.service

# 配置 Docker Swarm
docker swarm init --advertise-addr=127.0.0.1 --default-addr-pool=10.255.0.0/16

# 运行安装脚本
bash run-portable.sh