TeGo-AI 企业级高可用部署文档

部署概述

本文档针对企业级高可用场景,提供基于 8 台服务器的 TeGo-AI 平台部署方案。该架构实现全链路冗余设计,支持大规模并发访问,具备自动故障转移和完善的容灾备份能力,适用于全公司级核心业务场景。

环境准备

硬件配置要求

服务器名称 系统 核心 内存 存储 部署服务详情
infra-primary Ubuntu 22.04 LTS 16核 32GB 500G SSD 数据库集群主节点(postgres-master)、缓存主节点(redis-master)、认证主服务(openldap-master)
infra-standby Ubuntu 22.04 LTS 16核 32GB 500G SSD 数据库集群备节点(postgres-standby)、缓存从节点(redis-slave)、认证备服务(openldap-slave)、数据同步服务(data-sync)
ai-service1 Ubuntu 22.04 LTS 16核 32GB 500G SSD AI 服务主节点(embedding - Ollama 主实例)
ai-service2 Ubuntu 22.04 LTS 16核 32GB 500G SSD AI 服务备节点(embedding - Ollama 备实例)
biz-node1 Ubuntu 22.04 LTS 16核 32GB 500G SSD 业务服务全集(tego-os, tego-os-server, tego-llm, tego-mcp, tego-proxy, tego-engine-main×2, tego-engine-worker×2)
biz-node2 Ubuntu 22.04 LTS 16核 32GB 500G SSD 业务服务全集(同上)
biz-node3 Ubuntu 22.04 LTS 16核 32GB 500G SSD 业务服务全集(同上)
monitor-node Ubuntu 22.04 LTS 16核 32GB 500G SSD 监控告警服务(Prometheus, Grafana, Alertmanager)

软件环境要求

  1. 基础系统:Ubuntu 22.04 LTS,Linux Kernel 5.4+(最小化安装,无图形界面)
  2. 容器服务:Docker Engine 24.0.9+,Docker Compose 2.20+
  3. 基础工具:OpenSSH 8.0+、Git 2.30+、curl 7.68+、wget 1.21+
  4. 时间同步:chrony 3.5+(确保所有节点时间偏差 ≤ 1 秒)
  5. 数据存储:PostgreSQL 13.x+(含 pgvector 0.4.0+)、Redis 6.2+(含 RedisJSON 2.0+)
  6. 身份认证:OpenLDAP 2.4.57+

网络配置要求

  1. 内网连通性:所有服务器内网互通,ping 测试无丢包,延迟 < 1ms
  2. IP 规划:分配固定内网 IP(如 192.168.1.10-192.168.1.17),并标注服务器角色
  3. 防火墙配置:配置 UFW 或 iptables,仅开放必需端口

端口配置规划

端口类型 端口号 用途 关联服务 访问限制
外部访问 26000 前端 Web 界面 tego-os 允许用户客户端访问(企业内网/指定 IP)
外部访问 27000 MCP服务接口 tego-mcp 允许用户客户端/集成系统访问
外部访问 30000 工作流负载均衡 tego-proxy 仅允许外部负载均衡器访问
外部访问 31000 LLM网关服务 tego-llm 允许用户客户端/集成系统访问
内部通信 22 主从文件同步 SSH 仅允许授权节点访问
内部通信 5432 数据库服务 PostgreSQL 仅允许业务节点(biz-node1/2/3)访问
内部通信 6379 缓存/消息队列 Redis 仅允许业务节点访问
内部通信 389 身份认证服务 OpenLDAP 仅允许业务节点访问
内部通信 11434 AI嵌入服务 Embedding 仅允许业务节点访问
监控端口 9090 性能监控 Prometheus 仅允许监控节点/运维IP访问
管理端口 5678 工作流管理界面 tego-engine-main 仅允许运维IP访问

详细部署步骤

通用环境初始化(所有节点执行)

  1. 依赖包安装
apt update && apt install -y bzip2 gzip rsync coreutils iptables chrony openssh-server git curl wget
  1. 时间同步配置
systemctl enable --now chronyd
# 验证时间同步状态
timedatectl
# 确保输出中System clock synchronized: yes及NTP service: active
  1. Docker安装
# 下载离线Docker安装包
wget https://zhama-public.oss-cn-heyuan.aliyuncs.com/base/offline-docker-24.0.9.tar.gz
# 解压并安装
tar xf offline-docker-24.0.9.tar.gz
cd offline-docker-24.0.9
bash install.sh
# 验证安装
docker --version  # 需输出Docker version 24.0.9+
  1. 创建部署目录
mkdir -p /opt/tego/{infrastructure,business,monitor}
chmod -R 755 /opt/tego

基础设施层部署

1. infra-primary节点部署

步骤1:准备配置文件

在infra-primary主机上解压部署包并执行 setup.sh 脚本生成配置文件:

# 下载并解压部署包
wget https://zhama-public.oss-cn-heyuan.aliyuncs.com/tego-deploy-v1.6.0.tar
tar xvf tego-deploy-v1.6.0.tar
cd product

# 生成配置文件(使用企业级8节点部署参数)
./setup.sh -i <基础设施主节点内网IP> -b1 <业务节点1外网IP> -b2 <业务节点2外网IP> -b3 <业务节点3外网IP> -ai1 <AI服务1内网IP> -ai2 <AI服务2内网IP> -bk <基础设施备节点内网IP> -m <监控节点内网IP>

# 示例:
./setup.sh -i 192.168.1.10 -b1 47.120.69.7 -b2 47.113.226.243 -b3 47.114.227.244 -ai1 192.168.1.12 -ai2 192.168.1.13 -bk 192.168.1.11 -m 192.168.1.14

步骤2:配置核心服务密码

进入基础设施配置目录,编辑环境变量设置服务密码:

cd infrastructure/master
vim .env

设置核心服务密码(替换为实际密码):

POSTGRES_PASSWORD=your_password
REDIS_PASSWORD=your_redis_password
LDAP_ADMIN_PASSWORD=your_ldap_password
LDAP_ORGANISATION=Your Organization
LDAP_DOMAIN=your.domain.com

**步骤3:启动主基础设施服务**

启动主基础设施服务(PostgreSQL主库、Redis主库、OpenLDAP主库):
```bash
docker compose -f docker-compose-primary.yml up -d

执行主库初始化脚本(配置PostgreSQL主从复制,需传入备节点内网IP):

# 语法:bash master-init.sh <PostgreSQL复制密码> <备节点内网IP>
bash master-init.sh your_replication_password 192.168.1.11

重启基础服务,确保初始化生效:

docker compose down && docker compose up -d
cd ../..  # 返回product根目录

#### 2. infra-standby节点部署

**步骤1:准备配置文件**

在infra-standby主机上解压部署包并执行 setup.sh 脚本生成配置文件:

```bash
# 下载并解压部署包
wget https://zhama-public.oss-cn-heyuan.aliyuncs.com/tego-deploy-v1.6.0.tar
tar xvf tego-deploy-v1.6.0.tar
cd product

# 生成配置文件(使用与主节点相同的IP参数)
./setup.sh -i <基础设施主节点内网IP> -b1 <业务节点1外网IP> -b2 <业务节点2外网IP> -b3 <业务节点3外网IP> -ai1 <AI服务1内网IP> -ai2 <AI服务2内网IP> -bk <基础设施备节点内网IP> -m <监控节点内网IP>

# 示例(使用与主节点相同的配置):
./setup.sh -i 192.168.1.10 -b1 47.120.69.7 -b2 47.113.226.243 -b3 47.114.227.244 -ai1 192.168.1.12 -ai2 192.168.1.13 -bk 192.168.1.11 -m 192.168.1.14

注意:infra-standby节点的配置参数应与infra-primary节点保持一致

步骤2:配置Master-Slave SSH免密登录

生成SSH密钥(一路回车,无需设置密码):

ssh-keygen -t rsa -C "sync@tego.com"

查看公钥内容并复制:

cat ~/.ssh/id_rsa.pub

登录 infra-primary 节点,将infra-standby的公钥添加到授权列表:

# 在infra-primary节点执行
vim ~/.ssh/authorized_keys  # 粘贴infra-standby的公钥内容后保存

步骤3:启动从基础设施服务

启动从基础设施服务(PostgreSQL从库、Redis从库、OpenLDAP从库、data-sync同步服务):

docker compose -f docker-compose-standby.yml up -d

配置数据库主从复制:

docker exec postgres-standby pg_ctl stop -D /var/lib/postgresql/data
rm -rf /var/lib/postgresql/data/*
scp -r infra-primary:/var/lib/postgresql/data/backup/* /var/lib/postgresql/data/
# 配置recovery.conf文件
echo "standby_mode = 'on'" > /var/lib/postgresql/data/recovery.conf
echo "primary_conninfo = 'host=infra-primary port=5432 user=replication password=your_replication_password'" >> /var/lib/postgresql/data/recovery.conf
echo "trigger_file = '/tmp/postgresql.trigger'" >> /var/lib/postgresql/data/recovery.conf
docker restart postgres-standby
cd ../..  # 返回product根目录

3. ai-service1(AI主节点)部署

cd /opt/tego/infrastructure/llm

# 下载AI服务配置
git clone <AI服务配置仓库地址> .

# 配置环境变量
cp .env.example .env
vim .env
# 配置模型路径、资源限制等参数

# 启动主AI服务
docker compose -f docker-compose-primary.yml up -d

# 验证服务
docker logs embedding-primary
# 确保输出中包含"Service started successfully"

4. ai-service2(AI备节点)部署

cd /opt/tego/infrastructure/llm

# 同步主AI节点配置
scp -r ai-service1:/opt/tego/infrastructure/llm/* .

# 修改环境变量(备节点配置)
vim .env

# 启动备AI服务
docker compose -f docker-compose-standby.yml up -d

# 验证服务
docker logs embedding-standby

业务服务层部署(biz-node1/2/3执行相同操作)

步骤1:准备配置文件

在业务节点主机上解压部署包并执行 setup.sh 脚本生成配置文件:

# 下载并解压部署包
wget https://zhama-public.oss-cn-heyuan.aliyuncs.com/tego-deploy-v1.6.0.tar
tar xvf tego-deploy-v1.6.0.tar
cd product

# 生成配置文件(使用与基础设施节点相同的IP参数)
./setup.sh -i <基础设施主节点内网IP> -b1 <业务节点1外网IP> -b2 <业务节点2外网IP> -b3 <业务节点3外网IP> -ai1 <AI服务1内网IP> -ai2 <AI服务2内网IP> -bk <基础设施备节点内网IP> -m <监控节点内网IP>

# 示例(使用与基础设施节点相同的配置):
./setup.sh -i 192.168.1.10 -b1 47.120.69.7 -b2 47.113.226.243 -b3 47.114.227.244 -ai1 192.168.1.12 -ai2 192.168.1.13 -bk 192.168.1.11 -m 192.168.1.14

步骤2:配置业务服务连接参数

进入业务服务目录,编辑环境变量配置:

cd host1  # 或 host2, host3
vim .env

配置基础设施连接信息(替换为实际值):

# 基础设施连接配置(指向infra-primary)
POSTGRES_HOST=192.168.1.10
POSTGRES_PORT=5432
POSTGRES_PASSWORD=your_password
REDIS_HOST=192.168.1.10
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password

# 业务服务配置
TEGO_JWT_SECRET=your_jwt_secret
DATABASE_URL=postgresql://zhama:your_password@192.168.1.10:5432/zhama
SQL_DSN=host=192.168.1.10 port=5432 user=zhama password=your_password dbname=tego-llm sslmode=disable

# AI服务配置
USE_LOCAL_MODEL=false
MODEL_NAME=qwen3-embedding-4b
EMBEDDING_URL=http://192.168.1.12:11434/v1,http://192.168.1.13:11434/v1

步骤3:启动业务服务

启动业务服务集群(包含前端、后端、AI网关等核心服务):

docker compose up -d
cd ..  # 返回product根目录

验证业务节点状态

  • 查看容器运行状态(需全部显示Up):
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
  • 查看业务服务日志(无报错即正常):
docker compose -f host1/docker-compose.yml logs

监控节点部署(monitor-node)

cd /opt/tego/monitor

# 下载监控配置
git clone <监控服务配置仓库地址> .

# 配置环境变量
cp .env.example .env
vim .env
# 配置需要监控的节点和服务地址

# 启动监控服务
docker compose up -d

# 配置Grafana仪表盘
docker exec grafana grafana-cli dashboard import <dashboard-id>

外部负载均衡器配置

以HAProxy为例:

# 安装HAProxy
apt install -y haproxy

# 配置负载均衡
vim /etc/haproxy/haproxy.cfg
# 添加以下配置片段
frontend tego-front
    bind *:80
    mode http
    default_backend tego-back

backend tego-back
    mode http
    balance roundrobin
    server biz1 biz-node1:26000 check
    server biz2 biz-node2:26000 check
    server biz3 biz-node3:26000 check

# 重启HAProxy
systemctl restart haproxy

部署验证

基础设施验证

  1. 数据库主从验证
# 在主库创建测试数据
docker exec -it postgres-master psql -U postgres -c "CREATE TABLE test_replication (id int); INSERT INTO test_replication VALUES (1);"

# 在从库验证数据同步
docker exec -it postgres-standby psql -U postgres -c "SELECT * FROM test_replication;"
# 应返回新增的记录
  1. Redis验证
docker exec -it redis-master redis-cli -a your_redis_password
127.0.0.1:6379> set test_key "hello"
OK
127.0.0.1:6379> get test_key
"hello"
  1. AI服务验证
curl -X POST http://ai-service1:11434/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{"input": "test embedding"}'
# 应返回向量数据

业务服务验证

  1. 前端服务访问
    通过浏览器访问http://<负载均衡器IP>:26000,应能正常加载登录页面

  2. API服务验证

curl http://biz-node1:29000/api/health
# 应返回{"status": "healthy"}
  1. 工作流服务验证
curl http://biz-node1:30000/health
# 应返回健康状态信息

监控服务验证

通过浏览器访问http://monitor-node:3000(Grafana默认端口),登录后查看各服务监控指标是否正常

部署后配置

  1. HTTPS配置:为外部访问端口配置SSL证书,启用HTTPS
  2. 备份策略:配置定时备份脚本,定期备份数据库和关键配置
  3. 日志管理:配置日志轮转,避免磁盘空间耗尽
  4. 安全加固:更新系统补丁,配置最小权限原则的用户和防火墙规则

扩展与维护

  1. 水平扩展:新增业务节点(biz-node4等),在负载均衡器中添加节点信息
  2. 性能优化:根据监控数据调整服务资源分配,优化数据库索引等
  3. 故障转移:当主节点故障时,手动或自动切换到备节点,参考对应服务的故障转移文档

注意事项

  1. 所有节点的环境变量需保持一致,特别是密钥和密码信息
  2. 定期检查数据同步状态,确保主从数据一致性
  3. 部署过程中若出现服务启动失败,查看容器日志定位问题:docker logs <容器名>
  4. 生产环境建议关闭服务器的Swap分区,避免影响性能
原图
上一张
下一张
放大
缩小
🖱️ 拖拽移动
ESC 关闭