- 已具备可用的 Kubernetes(K8s)集群环境,并配置好
kubectl可访问集群 - 集群已安装 Ingress Controller(推荐
ingress-nginx),用于 Ingress 网络路由(若启用ingress.enabled=true) - 已安装 Helm 3(
helm命令可用)
# 克隆仓库
git clone https://github.com/iflytek/astron-agent.git
cd astron-agent/helm/astron-agent编辑 astron-agent/values.yaml,修改关键配置:
# 全局配置 - 主机访问地址
global:
# 镜像版本
astronAgentVersion: latest
# 主机地址,用于 MinIO、Casdoor 等服务的外部访问
# 例如: http://your-domain.com
hostBaseAddress: "http://your-domain.com"
# 配置 讯飞开放平台 相关 APP_ID API_KEY 等信息
#获取文档详见:https://www.xfyun.cn/doc/platform/quickguide.html
platformAppId: "your-app-id"
platformApiKey: "your-api-key"
platformApiSecret: "your-api-secret"
# https://console.xfyun.cn/services/bm4
sparkApiPassword: "your-api-password"
# https://console.xfyun.cn/services/rta
sparkRtasrApiKey: "your-rtasr-api-key"
# 修改ingress域名,与hostBaseAddress保持一致
ingress:
enabled: true
hosts:
- host: your-domain.com
tls:
hosts:
- your-domain.com# 使用 Helm 安装
helm install astron-agent . -n astron-agent --create-namespace- 生产环境:配置域名解析后访问
http://your-domain.com
当集群没有 LoadBalancer(云 LB/MetalLB)能力时,可以将 Ingress Controller(如 ingress-nginx)以 NodePort 方式暴露,再在集群外入口机部署一层 Nginx 监听 80,将流量转发到 ingress-nginx-controller 的 NodePort。
- 获取
ingress-nginx-controller的 NodePort(示例命令):
kubectl -n ingress-nginx get svc ingress-nginx-controller- 在入口机部署 Nginx(对外监听 80),将请求转发到任一 K8s 节点 IP + 上一步的
NodePort:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://<any-k8s-node-ip>:<ingress-nodeport>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}