實戰(zhàn))
如何用Helm部署Dograh到Kubernetes高可用語音AI平臺架構(gòu)實戰(zhàn)【免費下載鏈接】dograhOpen source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support.項目地址: https://gitcode.com/GitHub_Trending/do/dograhDograh 是一個開源的語音 AI 平臺也是 Vapi 和 Retell 的自托管替代品。它內(nèi)置可視化工作流構(gòu)建器、MCP 原生支持和電話Telephony集成支持 Speech-to-Speech 或 LLM/STT/TTS 等多種推理模式并允許 BYOK自帶模型密鑰。本文手把手帶你用 Helm 把 Dograh 部署到 Kubernetes講清楚每一層工作負載的設(shè)計取舍幫你搭出一套高可用的生產(chǎn)級語音 AI 平臺。為什么用 Helm 部署 Dograh Dograh 的后端不是一個簡單的一個容器跑世界而是被刻意拆分成了多個職責(zé)單一的 Kubernetes 工作負載工作負載默認副本更新策略說明dograh-web2可 HPARollingUpdateFastAPI WebSocket 信令層長連接優(yōu)雅排水dograh-arq-worker1可 HPARollingUpdate無狀態(tài)后臺任務(wù)dograh-ari-manager固定 1Recreate電話Asterisk單例dograh-campaign-orchestrator固定 1Recreate外呼營銷單例內(nèi)存鎖去重dograh-ui2可 HPARollingUpdateNext.js SSR 前端dograh-coturn1RecreateWebRTC TURN 媒體中繼L4 LoadBalancer這套拆分正是 Helm 部署的最大價值所在HTTP 層可以水平擴容狀態(tài)層自動托管單例層防誤擴。官方 Chart 位于 deploy/helm/dograh/完整設(shè)計文檔見 deploy/helm/dograh/README.md。部署前看懂三種模式開關(guān)Dograh 的 values.yaml 設(shè)計得非??酥坪诵木褪侨Mmode枚舉決定了你自己管多少基礎(chǔ)設(shè)施開關(guān)可選值適合場景database.modeinternal/external內(nèi)置 pgvector Postgres 或接 RDS 等托管庫redis.modeinternal/external內(nèi)置 Redis 或接 ElastiCache 等storage.modeinternalMinio/externalMinio/s3內(nèi)置 MinIO / 外部 MinIO / AWS S3exposure.modegatewayApi/ingress生產(chǎn)推薦 Gateway API通用集群用 Ingress 開箱即用簡單說單節(jié)點實驗用全internal生產(chǎn)集群用全external S3。內(nèi)置的 Postgres/Redis/MinIO 是 Chart 內(nèi)的官方鏡像清單無需helm dependency拉取子圖裝完即可用。一鍵安裝步驟 前提Kubernetes 集群 ≥ 1.28見 Chart.yaml已安裝 Helm。1. 克隆倉庫并進入 Chart 目錄git clone https://gitcode.com/GitHub_Trending/do/dograh cd dograh/deploy/helm/dograh2. 執(zhí)行安裝命令helm install dograh . \ --set secrets.ossJwtSecret$(openssl rand -hex 32) \ --set secrets.turnSecret$(openssl rand -hex 32)兩個密鑰是必選項JWT 簽名密鑰用于認證TURN 密鑰用于 WebRTC 中繼認證。安裝完成后helm會輸出 NOTES.txt 中的指引包括如何查詢 Gateway 地址、coturn LoadBalancer 地址以及數(shù)據(jù)庫遷移 Job 的日志查看方式Alembic 遷移以 post-install / pre-upgrade 鉤子自動執(zhí)行無需手動跑遷移。3. 完成 coturn 回調(diào)關(guān)鍵一步coturn 需要在 ICE 候選中宣告自己的公網(wǎng) IP但 LoadBalancer 地址往往裝完才有存在雞生蛋問題。拿到地址后補一次升級即可helm upgrade dograh . --reuse-values \ --set coturn.externalIpLB地址 \ --set config.turnHostLB地址這一步的完整說明見 NOTES.txt。在單節(jié)點/內(nèi)網(wǎng)測試中若不需要中繼也可以直接coturn.enabledfalse跳過。4 份官方拓撲示例按場景選型 Chart 自帶四份 values 示例覆蓋了絕大多數(shù)部署形態(tài)單節(jié)點k3s / minikube / 單機 VM全內(nèi)置依賴 Ingress縮小的資源配額見 values-single-node.yaml生產(chǎn)托管集群EKS/GKE/AKS 托管數(shù)據(jù)庫外部 Postgres Redis S3 Gateway API見 values-managed.yamlAWS EKS 專屬ALB NLB IRSA 免密訪問 S3coturn 固定 49 個中繼端口以適配 NLB 默認監(jiān)聽配額見 values-aws.yamlk3s 生產(chǎn)精簡版純托管 AI、Web-only 通話場景下關(guān)閉 ari-manager / campaign-orchestrator / coturn三層 HPA 1→5 彈性伸縮見 values-k3s-prod.yaml以 k3s 精簡版為例只跑網(wǎng)頁通話場景時關(guān)閉用不到的單例能省下可觀資源ariManager: { enabled: false } # 不用 Asterisk SIP campaignOrchestrator: { enabled: false } # 不做定時外呼 coturn: { enabled: false }高可用設(shè)計詳解為什么這樣拆 ??這是 Dograh Helm Chart 最值得學(xué)習(xí)的地方四個決策直接決定生產(chǎn)可用性① 長通話不被滾動更新打斷。web 層持有長生命周期的 WebSocket 信令連接Pod 直接重啟會掐斷所有進行中的通話。Chart 設(shè)置了terminationGracePeriodSeconds: 126021 分鐘覆蓋最長 20 分鐘通話并掛載 preStop 鉤子運行排水腳本 scripts/drain_web.sh先等網(wǎng)關(guān)停止派新連接再輪詢活躍通話數(shù)歸零才放行 SIGTERM。詳見 values.yaml。② 單例絕不擴容。ari-manager 與 campaign-orchestrator 依賴內(nèi)存中的鎖/去重狀態(tài)副本數(shù)被硬編碼為 1Chart 刻意不暴露replicaCount參數(shù)——防止運維誤執(zhí)行kubectl scale悄悄破壞狀態(tài)。③ PDB 保底副本。web 和 ui 默認啟用 PodDisruptionBudgetminAvailable: 1節(jié)點維護時至少留一個實例在線。④ HPA 默認關(guān)閉KEDA 預(yù)留。對 WebSocket 密集型服務(wù)CPU 是糟糕的擴縮信號因此 web-hpa.yaml 等模板雖已就緒但autoscaling.*全部默認enabled: falseChart 同時預(yù)留了 KEDA ScaledObjectweb-keda-scaledobject.yaml可按活躍連接數(shù)這類業(yè)務(wù)指標(biāo)伸縮比 CPU 精準(zhǔn)得多。部署后驗證你的語音 AI 平臺 ?Pod 全部 Running 后訪問 Ingress/Gateway 分配的域名用管理員賬號登錄你會看到 Dograh 的可視化工作流構(gòu)建器——這是平臺的核心能力無需寫代碼即可拖拽編排語音 Agent創(chuàng)建一條簡單的工作流、點擊 Call 發(fā)起測試通話后可以在 Agent Runs 里看到完整的對話歷史與工具調(diào)用軌跡用來驗證 STT/LLM/TTS 鏈路是否打通如果你走 BYOK 路線自帶 OpenAI、ElevenLabs 等密鑰在開發(fā)者面板創(chuàng)建 Service Key 即可讓平臺代為調(diào)用托管模型服務(wù) 模型配置支持三種模式Dograh 托管、BYOK 自帶密鑰、Speech-to-Speech 端到端模型詳見 docs/configurations/llm.mdx。部署驗證與常見排查 先渲染再安裝。Chart 官方驗證流程是先用模板渲染確認關(guān)鍵配置再上線helm lint . helm template test-release . /tmp/render-default.yaml渲染后抽查兩點ari-manager 與 campaign-orchestrator 是否replicas: 1Recreateweb Deployment 是否有 1260 秒的寬限期和 preStop 排水鉤子。常見排查手段數(shù)據(jù)庫遷移卡住kubectl logs job/release-migrate查看 Alembic 日志TURN 中繼不通確認coturn.externalIp和config.turnHost已回填 LoadBalancer 真實地址安裝后終端告警ossJwtSecret仍是默認值按提示重新--set一個隨機值只讀依賴Chart 狀態(tài)層Postgres/Redis/MinIO務(wù)必配置持久化存儲類生產(chǎn)強烈建議切換外部托管實例寫在最后用 Helm 部署 Dograh 到 Kubernetes你拿到的不只是一個能跑的語音 AI 平臺而是一套為長通話場景專門設(shè)計的高可用架構(gòu)HTTP 層可彈性、通話層會排水、單例層防誤擴、媒體層有 TURN 兜底。從單節(jié)點values-single-node.yaml起步到 EKS 上啟用 Gateway API S3 KEDA同一份 Chart 可以平滑覆蓋你從開發(fā)到生產(chǎn)的全部階段 【免費下載鏈接】dograhOpen source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow builder, MCP native and telephony support.項目地址: https://gitcode.com/GitHub_Trending/do/dograh創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考