...
Kubernetes,简称k8s,是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务。
以华为云CCE为例。以华为云容器引擎CCE为例的部署过程。
1.上传nla-agent-setup.tar.gz到/data目录,解压。
代码块 |
---|
tar -xzf nla-agent-setup.tar.gz |
解压后的目录结构
2.将docker-
...
images目录的镜像push到k8s关联的镜像仓库。
代码块 |
---|
# 以aienv4j为例 docker load -i |
...
aienv4j docker login -u xxx -p xxx swr.cn-south-1.myhuaweicloud. |
...
com # 镜像仓库地址按需修改 docker tag aienv4j:v9.1 swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9. |
...
1 docker push swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1 # 同样处理其他镜像 |
3.k8s中创建pv/pvc,用于挂载目录。存储服务用网络文件系统。
如果没有网络存储,可以不创建pvc,yml中改用主机路径hostpath。
4.将安装包中的scripts,services目录拷贝到服务器模板目录,例如/data_sfs_turbo/tenent_tpl/v11/public/nlav3-20241121/
代码块 |
---|
cd /data/nla-agent-setup
cp -ra services /data_sfs_turbo/tenent_tpl/v11/public/nlav3-20241121/
cp -ra scripts /data_sfs_turbo/tenent_tpl/v11/public/nlav3-20241121/ |
5.为nla实例准备mysql和nl2sql目录。
...
代码块 |
---|
# 创建目录,用于存储落地文件 mkdir -p /data_sfs_turbo/aichat-tpl/smartbi-aichat/data/ # |
...
拷贝安装包中的模板文件到该目录 cd /data/nla-agent-setup/data/ cp -ra config /data_sfs_turbo/aichat-tpl/smartbi-aichat/data/ cp -ra nl2sql_data/ /data_sfs_turbo/aichat-tpl/smartbi-aichat/data/ |
...
请至钉钉文档查看附件《aichat-tpl-nlav3-0326.yml》
修改pvc名称,镜像地址,挂载路径
7.用yaml文件创建工作负载,启动nlav3。
8.为工作负载创建服务,暴露9082端口。
6.修改yaml模板文件
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
kind: Deployment
apiVersion: apps/v1
metadata:
name: aichat-tpl-nlav3
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: aichat-tpl-nlav3
version: v1
template:
metadata:
creationTimestamp: null
labels:
app: aichat-tpl-nlav3
version: v1
spec:
volumes:
- name: pvc-sfsturbo
persistentVolumeClaim:
claimName: pvc-sfsturbo
- name: vol-173079782020714289
hostPath:
path: /etc/localtime
type: ''
containers:
- name: mysql-and-redis
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/airedis:v5
env:
- name: PAAS_APP_NAME
value: aichat-tpl-nlav3
- name: PAAS_NAMESPACE
value: default
- name: PAAS_PROJECT_ID
value: 059de0e837000fc22fd6c00d6d8e80a7
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /var/lib/mysql
subPath: aichat-tpl/smartbi-aichat/data/config
- name: vol-173079782020714289
readOnly: true
mountPath: /etc/localtime
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: mongo
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/mongo:4
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: root
- name: MONGO_INITDB_ROOT_PASSWORD
value: smartbi1#nla
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /data/db
subPath: aichat-tpl/smartbi-aichat/data/mongo/data
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: propertycenter
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 40 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/propertycenter
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: aiweb
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 50 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/aiweb
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: admin
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 50 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/admin
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: modulemanager
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 50 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/modulemanager
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: aibus
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 50 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/aibus
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: smartbiproxy
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4j:v9.1
command:
- /bin/sh
- '-c'
- ' sleep 50 ; /scripts/docker-entrypoint.sh'
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 250m
memory: 512Mi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /ailogs
subPath: aichat-tpl/smartbi-aichat/ailogs/
- name: pvc-sfsturbo
mountPath: /jars
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/smartbiproxy
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: nl2sqlllm
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4py-llm:v6
command:
- /bin/sh
- /scripts/docker-entrypoint.sh
resources:
limits:
cpu: '6'
memory: 32Gi
requests:
cpu: 250m
memory: 2Gi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /logs
subPath: aichat-tpl/smartbi-aichat/logs/
- name: pvc-sfsturbo
mountPath: /services
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /data
subPath: aichat-tpl/smartbi-aichat/data/nl2sql_data
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/nl2sql_llm
- name: pvc-sfsturbo
mountPath: /backup_data
subPath: aichat-tpl/smartbi-aichat/nl2sql_backup_data
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: agent
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4py-agent:v1.1
command:
- /bin/sh
- /scripts/docker-entrypoint.sh
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 250m
memory: 1Gi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /logs
subPath: aichat-tpl/smartbi-aichat/agent/logs
- name: pvc-sfsturbo
mountPath: /services
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /data
subPath: aichat-tpl/smartbi-aichat/data/nl2sql_data
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/agent
- name: pvc-sfsturbo
mountPath: /services/agent/project/data
subPath: aichat-tpl/smartbi-aichat/agent/data
- name: pvc-sfsturbo
mountPath: /services/agent/project/workspace
subPath: aichat-tpl/smartbi-aichat/agent/workspace
- name: pvc-sfsturbo
mountPath: /services/agent/project/experience
subPath: aichat-tpl/smartbi-aichat/agent/experience
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
- name: jupyter
image: swr.cn-south-1.myhuaweicloud.com/smartbi_cloud/aienv4py-agent:v1.1
command:
- /bin/sh
- /scripts/docker-entrypoint-runtime.sh
resources:
limits:
cpu: '6'
memory: 10Gi
requests:
cpu: 250m
memory: 1Gi
volumeMounts:
- name: pvc-sfsturbo
mountPath: /logs
subPath: aichat-tpl/smartbi-aichat/agent/logs
- name: pvc-sfsturbo
mountPath: /services
subPath: tenent_tpl/v11/public/nlav3-20250421/services
- name: pvc-sfsturbo
mountPath: /scripts
subPath: tenent_tpl/v11/public/nlav3-20250421/scripts/agent
- name: pvc-sfsturbo
mountPath: /services/agent/project/data
subPath: aichat-tpl/smartbi-aichat/agent/data
- name: pvc-sfsturbo
mountPath: /services/agent/project/workspace
subPath: aichat-tpl/smartbi-aichat/agent/workspace
- name: pvc-sfsturbo
mountPath: /services/agent/project/experience
subPath: aichat-tpl/smartbi-aichat/agent/experience
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: default-secret
schedulerName: default-scheduler
tolerations:
- key: node.kubernetes.io/not-ready
operator: Exists
effect: NoExecute
tolerationSeconds: 300
- key: node.kubernetes.io/unreachable
operator: Exists
effect: NoExecute
tolerationSeconds: 300
hostAliases:
- ip: 127.0.0.1
hostnames:
- main
- redis
- airedis
- propertycenter
- aiweb
- admin
- aibus
- smartbiproxy
- metadata
- nl2sql
- nl2sql-llm
- chat
- rhetorical
- intention2cls
- mongo
- aimongo
- jupyter
strategy:
type: Recreate
revisionHistoryLimit: 10
progressDeadlineSeconds: 600 |
修改pvc名称,镜像地址,挂载路径
7.用yaml文件创建工作负载,启动AIChat。
8.为工作负载创建服务,暴露9082端口。
8.打开smartbi运维设置--自然语言配置,填写nla服务地址:http://aichat-tpl-nlav3:9082/aiweb
...
9.为aichat配置smartbi地址
浏览器输入http://ip:节点端口/aiweb/#/manager/config;初始密码admin/manager
添加smartbi地址。
10.使用aichat
浏览器输入http://ip:节点端口/aiweb/#
结束。