私有部署基础环境搭建
本文主要针对没有使用云计算的客户搭建自己的内部集群,如果有条件还是更建议使用云服务来保证性能及安全性,尤其是数据库方面自己运维需要注意备份。
基础操作系统环境
硬件最小需求: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,大概建议是:
- 如果只有 2 台机器,那就 1 个 manger 1 个 worker
- 如果有 3 台机器,可以 3 个都是 manger
- 如果有 4 台机器,3 个 manager、1 个 worker
- 如果有 5 台机器,可以全是 manager,或者 3 个 manager、2 个 worker
只要保证 manager 有一半以上存活,就不会影响部署,如果 manager 全部下线虽然不影响业务,但无法再部署新版了。
MySQL
MySQL 建议有专业的 DBA 运维,因为这里有大量运维工作,比如数据备份,还有遇到机器挂掉时需要切换主从。
推荐使用 MySQL 8,最简单的主从搭建方案是使用 Docker 镜像 https://hub.docker.com/r/bitnami/mysql,需要注意一些默认配置,比如调大 max_allowed_packet
及 max_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
里的版本号,然后再次运行上面的命令即可。