一、概述
ragflow官方提供的安装方式是docker-compose方式部署的,单机运行。
k8s部署方式,暂未提供。
不过我们可以通过工具,结合docker-compose.yaml,来推演出对应服务的yaml进行部署。
过程有点曲折,结果很美好。
接下来,本文将使用ragflow-0.18.0,来进行演示详细部署过程。
二、准备工作
前提条件
硬件
CPU :至少 4 核。
内存 :至少 16GB。
磁盘 :至少 50GB。
操作系统:推荐 Ubuntu 22.04+
软件
k8s,自行搭建,或者使用云厂商提供的k8s,都可以。
符合以上条件,就可以部署了
镜像推送
下载镜像
docker pull elasticsearch:8.11.3
docker pull quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
docker pull mysql:8.0.39
docker pull valkey/valkey:8
docker pull infiniflow/ragflow:v0.18.0-slim
推送镜像
这里使用shell脚本完成
#!/bin/bash
images="elasticsearch:8.11.3
quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
mysql:8.0.39
valkey/valkey:8
infiniflow/ragflow:v0.18.0-slim"
# 遍历镜像列表,并推送到harbor
for line in $images; do
#echo "$line"
docker tag $line harbor.qq.cn:8083/ragflow/$line
docker push harbor.qq.cn:8083/ragflow/$line
done
注意修改harbor的的地址为实际访问地址
登录到harbor,查看镜像

创建命名空间以及密钥
创建命名空间ragflow
kubectl create namespace ragflow
创建拉取镜像需要的密钥
kubectl create secret docker-registry harbor-key --docker-server=harbor.qq.com:8083 --docker-username=devops --docker-password=1sB5r9UShgK5 --namespace=ragflow
注意:修改harbor地址,用户名,密码。
下载部署yaml
yaml已经写好了,推送到我个人的github,地址:https://github.com/987334176/ragflow-k8s
下载项目后,进入文件夹0.18.0
目录结构
env --> 全局环境变量
pvc --> 所有组件,统一使用一个pvc来进行持久化存储
databases --> 数据库相关:mysql,redis
middleware --> 中间件相关:elasticsearch,minio
services --> 服务相关:ragflow
三、创建全局环境变量
这里有30个多个变量,直接一键运行
kubectl apply -f env/env.yaml
四、创建pv和pvc
创建storageClass,因为pv和pvc必须是同一个storageClass才能绑定成功
kubectl apply -f pvc/storageClass.yaml
注意:修改NFS 服务端的共享路径,provisioner必须指定为nfs-client
nfs-client是一个外部的动态存储供给器(Provisioner),用于在 Kubernetes 集群中动态创建和管理基于 NFS(Network File System)的 PersistentVolumes(PV)。它是 Kubernetes 社区提供的一个解决方案,用于支持 NFS 存储的动态供给。
创建pv,pvc。注意:这里的pv是自建的NFS,请根据实际情况修改
kubectl apply -f pvc/pv.yaml
kubectl apply -f pvc/pvc.yaml
查看pvc状态,注意:请确保pvc状态为Bound
# kubectl -n ragflow get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
ragflow-pvc Bound ragflow 10Gi RWX nfs-storage <unset>

最低0.47元/天 解锁文章
751

被折叠的 条评论
为什么被折叠?



