Files
Logan.Li fd60361d93 chore: 统一本地服务器与远程仓库源码
- 合并 main 与 master 历史并以服务器结构为基线
- 保留迁移、数据保留、AWS 账单与部署安全能力
- 建立 SDD 规格和 CI 验证闭环
2026-08-05 20:03:25 +08:00

3.3 KiB
Raw Permalink Blame History

AIOps 部署资源

本目录存放运维部署清单(与 frontend/src/components/deploy/ 应用发布模块无关)。

目录结构

deploy/
├── kubernetes/          # K8s 清单(./run.sh kubernetes 使用)
│   ├── namespace.yaml
│   ├── secret.yaml
│   ├── configmap.yaml
│   ├── mysql.yaml / redis.yaml
│   ├── deployment.yaml  # embed 单容器,镜像 lghost/aiops:<tag>
│   ├── ingress.yaml
│   └── README.md
└── binary/
    └── install.sh       # 裸机 systemd 安装脚本(可选)

已移除 deploy/nginx/:旧版前后端分离 Nginx 容器方案已废弃,统一 embed 单端口 8080。


部署方式对比

方式 命令 架构
Docker Compose ./run.sh docker up MySQL + Redis + AIOps embed(3 容器,:8080)
独立二进制 ./run.sh build → ./aiops 单文件 embed,项目根目录
Kubernetes ./run.sh kubernetes deploy embed 单 Pod + MySQL/Redis StatefulSet
发版推送 ./run.sh release v1.5.0 二进制 + lghost/aiops:v1.5.0 镜像

详见 docs/deployment.md。


一、Docker Compose(推荐单机)

./run.sh docker up
./run.sh docker up v1.5.0      # 指定版本

# 访问
http://localhost:8080
http://localhost:8080/version

连接外部 MySQL/Redis 时使用根目录 docker-compose.k8s.yml。

生产前复制 .env.example 为 .env、填入随机密码和 JWT 并执行 chmod 600 .env。Compose 不再挂载 Docker Socket,K8s 清单不使用 hostNetwork;uploads 通过独立持久卷保存。


二、独立二进制(无 Docker)

本机构建

./run.sh build tag v1.5.0
./aiops version
./run.sh binary upgrade          # 本机后台启动

远程 Linux 服务器(systemd)

# 1. 在 Linux 上构建,或从 CI 拷贝 linux/amd64 二进制
scp ./aiops deploy/binary/install.sh root@<server>:/tmp/

# 2. 安装
ssh root@<server> 'cd /tmp && bash install.sh install'

# 3. 配置并启动
vim /opt/aiops/config.yaml
systemctl start aiops
systemctl status aiops

Mac 上 ./run.sh build 产出 darwin 二进制,不能直接在 Linux 运行。Linux 部署请用 Docker 镜像或在 Linux 上编译。


三、Kubernetes

# 一键部署(构建镜像 + apply 全部清单)
./run.sh kubernetes deploy
./run.sh kubernetes deploy v1.5.0

# 滚动更新 + 推送 Docker Hub
./run.sh release v1.5.0
./run.sh kubernetes upgrade v1.5.0

# 运维
./run.sh kubernetes status
./run.sh kubernetes logs
./run.sh kubernetes delete

清单目录:deploy/kubernetes/
默认镜像:lghost/aiops:<tag>,NodePort 30080。

K8s 部署前必须替换 deploy/kubernetes/secret.yaml 中的 REPLACE_WITH_* 占位符;deployment.yaml 会一并应用 MySQL/Redis NetworkPolicy。详细流程见 kubernetes/README.md。

详见 kubernetes/README.md。


快速选择

环境 推荐
本地开发 ./run.sh dev
单机演示/测试 ./run.sh docker up
无 Docker 的 Linux ./aiops + deploy/binary/install.sh
K8s 集群 ./run.sh kubernetes deploy
版本发布 ./run.sh release v1.x