Rasa项目部署指南:使用Helm在Kubernetes/OpenShift上部署对话机器人
前言
在构建对话机器人时,部署是至关重要的一环。本文将详细介绍如何使用Helm在Kubernetes或OpenShift集群上部署Rasa开源版和Rasa Plus版。通过本指南,您将掌握从环境准备到最终部署的完整流程。
部署前准备
1. 环境检查
在开始部署前,请确保您的环境满足以下要求:
Kubernetes/OpenShift CLI检查
# Kubernetes环境检查
kubectl version --short --client
# OpenShift环境检查
oc version --client
如果上述命令报错,说明您需要安装对应的命令行工具。请根据您使用的集群类型安装相应的CLI工具。
集群连接验证
# Kubernetes集群验证
kubectl version --short
# OpenShift集群验证
oc version
如果命令执行报错,说明您尚未连接到集群,需要联系集群管理员或查阅云服务商文档获取连接方法。
2. Helm工具安装
Helm是Kubernetes的包管理工具,我们需要确保已安装正确版本:
helm version --short
建议使用Helm 3.5及以上版本。如果未安装或版本过低,请先升级安装。
部署流程详解
1. 创建命名空间
为避免影响现有集群部署,建议为Rasa创建独立的命名空间:
# Kubernetes环境
kubectl create namespace <your-namespace>
# OpenShift环境
oc create namespace <your-namespace>
2. 准备配置文件
创建名为rasa-values.yml
的配置文件,用于自定义Helm安装参数。该文件将包含所有自定义配置项,如资源限制、环境变量等。
3. 初始模型配置
首次部署时,您可以选择以下三种方式加载初始模型:
-
使用默认示例模型:无需任何配置,Helm会自动下载GitHub上的示例模型。
-
指定自定义模型URL:
applicationSettings:
initialModel: "https://your-model-server/models/model.tar.gz"
- 训练新模型:
applicationSettings:
trainInitialModel: true
4. 执行部署命令
完成上述准备后,执行以下命令进行部署:
# 添加Rasa Helm仓库
helm repo add rasa https://helm.rasa.com
# 执行部署
helm install \
--namespace <your-namespace> \
--values rasa-values.yml \
<release-name> \
rasa/rasa
Rasa Plus版特殊配置
如果您使用的是Rasa Plus版,需要进行额外配置:
1. 创建镜像拉取密钥
kubectl --namespace <your-namespace> \
create secret docker-registry rasa-plus-pull-secret \
--docker-server=https://europe-west3-docker.pkg.dev \
--docker-email=your-email@example.com \
--docker-username=_json_key \
--docker-password="$(cat <credentials-file>.json)"
2. 存储许可证密钥
# 创建许可证密钥文件
echo "<your-license-key>" > license.txt
# 创建Kubernetes secret
kubectl -n <your-namespace> create secret generic rasapro-license --from-file=licensekey=./license.txt
# 删除本地文件
rm license.txt
3. 更新values.yml配置
registry: europe-west3-docker.pkg.dev/rasa-releases/rasa-plus/rasa-plus
command:
- rasa
image:
name: rasa-plus
tag: <version>
pullSecrets:
- name: rasa-plus-pull-secret
extraEnv:
- name: RASA_PRO_LICENSE
valueFrom:
secretKeyRef:
name: rasapro-license
key: licensekey
访问部署的Rasa助手
默认情况下,Rasa服务仅在集群内部可访问。您可以通过以下方式访问:
1. 端口转发方式
# 获取服务端口
export SERVICE_PORT=$(kubectl get --namespace <namespace> -o jsonpath="{.spec.ports[0].port}" services <release-name>)
# 设置端口转发
kubectl port-forward --namespace <namespace> svc/<release-name> ${SERVICE_PORT}:${SERVICE_PORT} &
访问地址:http://127.0.0.1:${SERVICE_PORT}
2. NodePort方式
- 修改配置:
service:
type: "NodePort"
- 升级部署:
helm upgrade --namespace <namespace> --reuse-values -f rasa-values.yaml <release-name> rasa/rasa
- 获取访问信息:
export NODE_PORT=$(kubectl get --namespace <namespace> -o jsonpath="{.spec.ports[0].nodePort}" services <release-name>)
OpenShift特殊注意事项
在OpenShift环境中,如果遇到权限问题,请在values.yml中添加以下配置:
postgresql:
volumePermissions:
securityContext:
runAsUser: "auto"
securityContext:
enabled: false
shmVolume:
chmod:
enabled: false
nginx:
image:
name: nginxinc/nginx-unprivileged
port: 8080
后续步骤
部署完成后,您可以:
- 监控部署状态
- 配置自动扩缩容
- 设置持续集成/持续部署(CI/CD)流程
- 配置监控和日志收集
通过本指南,您应该已经成功在Kubernetes/OpenShift集群上部署了Rasa对话机器人。根据实际需求,您可以进一步优化配置,如设置资源限制、配置健康检查等。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考