|
|
|
@ -1,272 +0,0 @@ |
|
|
|
|
# OpenCoze 部署手册 |
|
|
|
|
|
|
|
|
|
## Local/VM (Docker Compose) |
|
|
|
|
|
|
|
|
|
### 环境准备 |
|
|
|
|
|
|
|
|
|
| **项目** | **说明** | |
|
|
|
|
| --- | --- | |
|
|
|
|
| CPU | 8 Core | |
|
|
|
|
| RAM | 16 GiB | |
|
|
|
|
| Go | * 已安装 Go,且版本为 1.24.2 及以上版本。 <br> * 配置 GOPATH,同时将 `${GOPATH}/bin` 加入到环境变量 PATH 中,保证安装的二进制工具可找到并运行。 | |
|
|
|
|
| Docker | 提前安装 Docker、Docker Compose,并启动 Docker 服务,详细操作请参考 Docker 文档: <br> <br> * **macOS**:推荐使用 Docker Desktop 安装,参考 [Docker Desktop For Mac](https://docs.docker.com/desktop/setup/install/mac-install/) 安装指南。 <br> * **Linux**:参考 [Docker 安装指南](https://docs.docker.com/engine/install/) 和 [Docker Compose](https://docs.docker.com/compose/install/) 安装指南。 <br> * **Windows**:推荐使用 Docker Desktop 安装,参考 [Docker Desktop For Windows](https://docs.docker.com/desktop/setup/install/windows-install/) 安装指南。 | |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
# 验证安装 |
|
|
|
|
docker compose version |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
### 部署步骤 |
|
|
|
|
|
|
|
|
|
1. **获取代码** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
git clone https://github.com/coze-dev/coze-studio.git |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
2. **配置模型** |
|
|
|
|
进入目录 `coze-studio/backend/conf/model/meta` |
|
|
|
|
修改 `doubao.yaml`(或其他模型文件): |
|
|
|
|
- `api_key`: 火山方舟 API Key([获取指南](https://www.volcengine.com/docs/82379/1541594)) |
|
|
|
|
- `model`: 方舟模型 ID([模型列表](https://www.volcengine.com/docs/82379/1330310)) |
|
|
|
|
|
|
|
|
|
```yaml |
|
|
|
|
id: 102 |
|
|
|
|
name: Doubao-1.5-pro-32k |
|
|
|
|
icon_uri: doubao_v2.png |
|
|
|
|
... |
|
|
|
|
conn_config: |
|
|
|
|
api_key: # 你的API Key |
|
|
|
|
model: # 模型名称 |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
3. **启动服务** |
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
cd coze-studio/docker |
|
|
|
|
cp .env.example .env |
|
|
|
|
docker compose --profile '*' up -d |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
|
|
## 火山容器云部署(Helm) |
|
|
|
|
|
|
|
|
|
### 环境准备 |
|
|
|
|
|
|
|
|
|
| **工具** | **安装说明** | |
|
|
|
|
|------------|--------------| |
|
|
|
|
| **kubectl**| **macOS**:`brew install kubectl`<br>**Linux**:<br>`curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"`<br>`chmod +x kubectl && sudo mv kubectl /usr/local/bin/`<br>**Windows**:`winget install -e --id Kubernetes.kubectl` | |
|
|
|
|
| **Helm** | **macOS**:`brew install helm`<br>**Linux**:下载[最新版本](https://github.com/helm/helm/releases)<br>`tar -zxvf helm-*.tar.gz && sudo mv linux-amd64/helm /usr/local/bin/`<br>**Windows**:下载并添加PATH | |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
# 验证安装 |
|
|
|
|
kubectl version --client |
|
|
|
|
helm version |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
### 自动创建火山云基础组件(可选) |
|
|
|
|
> ⚠️ 创建火山云组件可能产生云产品费用 |
|
|
|
|
|
|
|
|
|
1. **进入目录** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
cd scripts/volcengine |
|
|
|
|
cp .volcengine.example.env .env |
|
|
|
|
``` |
|
|
|
|
2. **设置API密钥** |
|
|
|
|
|
|
|
|
|
创建[API访问密钥](https://console.volcengine.com/iam/keymanage) |
|
|
|
|
|
|
|
|
|
```bash |
|
|
|
|
export VE_AK="your_ak" |
|
|
|
|
export VE_SK="your_sk" |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
3. **创建组件** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
# ⚠️ 创建火山云组件可能产生云产品费用 |
|
|
|
|
go run . |
|
|
|
|
|
|
|
|
|
# 输出示例: |
|
|
|
|
Output Env : |
|
|
|
|
# MySQL |
|
|
|
|
export MYSQL_DATABASE=opencoze |
|
|
|
|
export MYSQL_USER=coze |
|
|
|
|
export MYSQL_PASSWORD=Opencoze123 |
|
|
|
|
export MYSQL_HOST=vedbm-*****.pri.mysql.vedb.ivolces.com |
|
|
|
|
export MYSQL_PORT=3306 |
|
|
|
|
|
|
|
|
|
# Redis |
|
|
|
|
export REDIS_ADDR=redis-*****.redis.ivolces.com:6379 |
|
|
|
|
|
|
|
|
|
# Elasticsearch |
|
|
|
|
export ES_VERSION=v7 |
|
|
|
|
export ES_ADDR=http://elasticsearch-o-*****.escloud.ivolces.com:9200 |
|
|
|
|
export ES_USERNAME=admin |
|
|
|
|
export ES_PASSWORD=********** |
|
|
|
|
|
|
|
|
|
# RocketMQ |
|
|
|
|
export RMQ_NAME_SERVER=http://rocketmq-*****.rocketmq.ivolces.com:9876 |
|
|
|
|
export RMQ_ACCESS_KEY=Xbg8*************** |
|
|
|
|
export RMQ_SECRET_KEY=smJLA*************** |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
### 镜像推送 |
|
|
|
|
|
|
|
|
|
1. **创建镜像服务** |
|
|
|
|
|
|
|
|
|
在 [火山云镜像服务控制台](https://console.volcengine.com/cr/),按需创建自己的镜像仓库规格。 |
|
|
|
|
|
|
|
|
|
2. **设置仓库密码** |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
3. **创建命名空间** |
|
|
|
|
 |
|
|
|
|
* iac:存放 mysql、redis、elasticsearch 等组件的空间 |
|
|
|
|
* opencoze:存储 coze 镜像的空间 |
|
|
|
|
|
|
|
|
|
4. **登录仓库** |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
docker login --username=xxx opencoze-cn-beijing.cr.volces.com |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
5. **推送服务镜像** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
cd ./backend |
|
|
|
|
docker buildx build \ |
|
|
|
|
--platform linux/amd64,linux/arm64 \ |
|
|
|
|
-t 你的仓库域名/opencoze/opencoze:0.0.1 \ |
|
|
|
|
-t 你的仓库域名/opencoze/opencoze:latest \ |
|
|
|
|
-f backend/Dockerfile \ |
|
|
|
|
--push . |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
6. **推送依赖镜像(可选)** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
cd ./helm/charts/opencoze |
|
|
|
|
# 编辑 push_imgaes_to_volcengine.sh 按需修改使用到的镜像 |
|
|
|
|
./push_imgaes_to_volcengine.sh |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
### Helm 部署 |
|
|
|
|
|
|
|
|
|
1. **创建K8S集群** |
|
|
|
|
登录 [火山云VKE控制台](https://console.volcengine.com/vke) 创建 `K8S` 集群。 |
|
|
|
|
|
|
|
|
|
2. **创建节点池** |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
3. **配置kubectl** |
|
|
|
|
 |
|
|
|
|
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
复制集群`config`到 `~/.kube/config` |
|
|
|
|
|
|
|
|
|
4. **创建存储类(可选)** |
|
|
|
|
* 如果使用了`MySQL`、`Redis`、`RocketMQ`、`Elasticsearch`等存储组件,则需要创建。 |
|
|
|
|
* 名称建议:`opencoze-data`,使用其他名字需要修改 `helm/charts/opencoze/values.yaml`中`storageClassName`配置。 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5. **修改Helm配置** |
|
|
|
|
编辑 `helm/charts/opencoze/values.yaml`文件,按需配置自己需要部署的组件: |
|
|
|
|
|
|
|
|
|
```yaml |
|
|
|
|
cozeServer: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
mysql: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
redis: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
rocketmq: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
elasticsearch: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
minio: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
etcd: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
milvus: |
|
|
|
|
enabled: true |
|
|
|
|
... |
|
|
|
|
kibana: |
|
|
|
|
enabled: true |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
6. **启动服务** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
cd ./helm/charts/opencoze |
|
|
|
|
helm upgrade --install opencoze . -n opencoze --create-namespace |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
7. **查看状态** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
kubectl get pods --namespace opencoze |
|
|
|
|
# 等待所有Pod状态变为Running |
|
|
|
|
# 输出 |
|
|
|
|
NAME READY STATUS RESTARTS AGE |
|
|
|
|
opencoze-elasticsearch-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-es-init-w6q5h 0/1 Completed 0 4h28m |
|
|
|
|
opencoze-etcd-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-kibana-75775d5b94-jpk4h 1/1 Running 0 4h28m |
|
|
|
|
opencoze-milvus-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-minio-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-mysql-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-mysql-init-2bhxq 0/1 Completed 0 28s |
|
|
|
|
opencoze-redis-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-rocketmq-broker-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-rocketmq-namesrv-0 1/1 Running 0 4h28m |
|
|
|
|
opencoze-server-6b9f6b4d66-f2qzd 1/1 Running 0 4h28m |
|
|
|
|
``` |
|
|
|
|
- 等`opencoze-server-* pod`状态变成`Running`以后,表示服务启动成功 |
|
|
|
|
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
8. **获取服务IP** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
kubectl get service --namespace opencoze |
|
|
|
|
# 使用 opencoze-server 的 EXTERNAL-IP |
|
|
|
|
``` |
|
|
|
|
- 通过 `opencoze-server` 的`EXTERNAL-IP:8888`访问`coze`服务 |
|
|
|
|
|
|
|
|
|
9. **其他配置(可选)** |
|
|
|
|
|
|
|
|
|
- 端口`ACL/IP`白名单 |
|
|
|
|
- 调整公网`IP`带宽(默认`1M`) |
|
|
|
|
- 修改`MINIO_ENDPOINT` |
|
|
|
|
- 手动上传 `docker/volumes/minio/default_icon` 和 `volumes/minio/official_plugin_icon`到 `minio` 服务。 |
|
|
|
|
|
|
|
|
|
10. **运维操作** |
|
|
|
|
|
|
|
|
|
```shell |
|
|
|
|
# 升级 |
|
|
|
|
helm upgrade --install opencoze . -n opencoze --create-namespace |
|
|
|
|
|
|
|
|
|
# 回滚 |
|
|
|
|
helm history opencoze -n opencoze |
|
|
|
|
helm rollback opencoze <VERSION> |
|
|
|
|
|
|
|
|
|
# 卸载 |
|
|
|
|
helm uninstall opencoze -n opencoze |
|
|
|
|
|
|
|
|
|
# 删除所有数据 |
|
|
|
|
kubectl delete ns opencoze |
|
|
|
|
``` |