Skip to main content

私有部署基础环境搭建

本文主要针对没有使用云计算的客户搭建自己的内部集群,如果有条件还是更建议使用云服务来保证性能及安全性,尤其是数据库方面自己运维需要注意备份。

基础操作系统环境

硬件最小需求:4 核 16G 内存

AI速搭主要在 Linux 下使用,虽然也能在 Windows 下使用 Docker Desktop 运行,但目前没测试过。

推荐 Linux 操作系统是 Ubuntu 及 CentOS,最好是最近的 LTS 版本。

需要注意本地硬盘挂载,如果是用于运行 MySQL 的机器最好使用 SSD。

Docker 安装

安装步骤参考官方文档就好。

需要注意的是默认镜像存储在 /var/lib/docker/ 目录,需要 df -h 确认一下根分区的空间大小,如果太小,比如只有 20G 之类的,就需要编辑 /etc/docker/daemon.json 文件,将它改到别的硬盘下

{
"data-root": "/mnt/docker-data"
}

Docker swarm 集群安装

由于 k8s 的复杂性,所以有能力搭建 k8s 集群的客户大概不会看这篇文章,因此这里更推荐简单的 swarm 集群,它虽然功能不如 k8s,但对于AI速搭来说足够了。

安装方法非常简单,参考官方文档就行,需要注意 manager 数量需要是单数,比如 1/3/5,大概建议是:

  1. 如果只有 2 台机器,那就 1 个 manger 1 个 worker
  2. 如果有 3 台机器,可以 3 个都是 manger
  3. 如果有 4 台机器,3 个 manager、1 个 worker
  4. 如果有 5 台机器,可以全是 manager,或者 3 个 manager、2 个 worker

只要保证 manager 有一半以上存活,就不会影响部署,如果 manager 全部下线虽然不影响业务,但无法再部署新版了。

MySQL

MySQL 建议有专业的 DBA 运维,因为这里有大量运维工作,比如数据备份,还有遇到机器挂掉时需要切换主从。

推荐使用 MySQL 8,最简单的主从搭建方案是使用 Docker 镜像 https://hub.docker.com/r/bitnami/mysql,需要注意一些默认配置,比如调大 max_allowed_packetmax_connections,下面是一个简单的设置参考,具体配置需要依赖机器配置

[mysqld]
max_allowed_packet = 32M
key_buffer_size = 256M
max_connections = 1000
innodb_file_per_table = ON

如果是 MySQL 8 推荐加上

innodb_dedicated_server = ON

开启后它会自动优化默认配置。另外还可以通过 MySQLTunner 工具检查

单靠主从无法保证数据误删,所以还需要类似 XtraBackup 之类的工具进行日常备份,或者直接用 cron 运行 mysqldump

Redis 安装

可以直接放在后面AI速搭部署的 aisuda.yaml 配置里,配置 replicas 为 1 保证只有一个实例,比如

redis:
image: redis:6
deploy:
replicas: 1
ports:
- "6379"

AI速搭环境变量里设置

ISUDA_REDIS_HOST: 'redis'
ISUDA_REDIS_PORT: '6379'

(可选)Elasticsearch 的安装

参考官方文档,可以安装在机器或 Docker 里,如果要安装集群版本需要注意手动修改相关的 ip 地址

Elasticsearch 对内存要求很高,最好单独找台机器部署。

AI速搭安装

后续参考 私有部署安装,通过如下命令部署

docker stack deploy -c aisuda.yaml aisuda

后续版本更新的时候只需要修改 aisuda.yaml 里的版本号,然后再次运行上面的命令即可。