跳到主要内容

Langflow 架构与 Kubernetes 最佳实践

虽然 Langflow 提供了灵活的部署选项,但强烈建议在生产环境中使用 Kubernetes 集群进行部署。

在 Kubernetes 上部署具有以下优势

  • 可扩展性:Kubernetes 允许您扩展 Langflow 服务以满足您的工作负载需求。
  • 可用性和弹性:Kubernetes 提供内置的弹性功能,例如自动故障转移和自修复,以确保 Langflow 服务始终可用。
  • 安全性:Kubernetes 提供安全功能,例如基于角色的访问控制和网络隔离,以保护 Langflow 服务及其数据。
  • 可移植性:Kubernetes 是一个可移植平台,这意味着您可以将 Langflow 服务部署到任何 Kubernetes 集群,无论是在本地还是在云端。

Langflow 可以部署在云端,例如 AWS EKS、Google GKE 或 Azure AKS。有关在 AWS EKS、Google GKE 或 Azure AKS 上部署 Langflow 的更多信息,请参阅Langflow Helm charts 仓库

Langflow 部署

典型的 Langflow 部署包括

  • Langflow API 和 UI – Langflow 服务是 Langflow 平台的核心组件。它提供用于执行流程的 RESTful API。
  • Kubernetes 集群 – Kubernetes 集群提供一个用于部署和管理 Langflow 服务及其支持组件的平台。
  • 持久存储 – 持久存储用于存储 Langflow 服务的数据,例如模型和训练数据。
  • Ingress 控制器 – Ingress 控制器为流向 Langflow 服务的流量提供单一入口点。
  • 负载均衡器 – 在多个 Langflow 副本之间均衡流量。
  • 向量数据库 – 如果您将 Langflow 用于 RAG,可以与 Astra Serverless 中的向量数据库集成。

Langflow reference architecture on Kubernetes

环境隔离

建议为 Langflow 部署和运行两个独立的环境,一个用于开发,另一个用于生产。

Langflow environments

  • Langflow 开发环境必须包含集成开发环境 (IDE),以提供完整的 Langflow 体验,并针对原型设计和测试新流程进行优化。
  • Langflow 生产环境在生产中执行流程逻辑,并将 Langflow 流程启用为独立服务。

为何独立部署很重要?

这种分离旨在增强安全性、优化资源分配并简化管理。

  • 安全性
    • 隔离:通过分离开发环境和生产环境,您可以更好地隔离应用程序生命周期的不同阶段。这种隔离最大限度地降低了与开发相关的问题影响生产环境的风险。
    • 访问控制:可以对每个环境应用不同的安全策略和访问控制。开发人员在 IDE 中进行测试和调试时可能需要更广泛的访问权限,而运行时环境可以采用更严格的安全措施进行锁定。
    • 减少攻击面:运行时环境配置为仅包含基本组件,从而减少了攻击面和潜在漏洞。
  • 资源分配
    • 优化资源使用和成本效益:通过分离这两个环境,您可以更有效地分配资源。每个流程都可以独立部署,提供精细的资源控制。
    • 可扩展性:运行时环境可以根据应用程序负载和性能要求独立扩展,而不会影响开发环境。
Search