跳到主要内容

Kubernetes 上的 Langflow 架构

Langflow 部署大致分为两种类型:

  • Langflow IDE (开发):同时部署 Langflow 可视化编辑器(前端)和 API(后端)。通常用于开发环境,开发人员使用可视化编辑器创建和管理工作流,然后将其打包并通过生产运行时部署进行提供。

    Langflow 仓库中的示例 docker-compose.yml 文件会构建一个 Langflow IDE 镜像。

    有关在 Kubernetes 上部署 IDE 的信息,请参阅 在 Kubernetes 上部署 Langflow 开发环境

  • Langflow 运行时 (生产):为生产工作流部署 Langflow 运行时,这是一种专注于提供 Langflow API 的无头 (headless) 服务(仅后端)。用于以编程方式执行工作流而不需要可视化编辑器的生产环境。服务器将您的工作流公开为端点,然后仅运行服务每个工作流所需的进程。

    与默认的 SQLite 数据库相比,强烈建议在此部署类型中使用外部 PostgreSQL 数据库,以提高可扩展性和可靠性。

    有关在 Kubernetes 上部署运行时的信息,请参阅 在 Kubernetes 上部署 Langflow 生产环境

    提示

    您可以使用 LANGFLOW_BACKEND_ONLY 环境变量 以无头模式启动 Langflow。

您还可以 在 Docker 上部署 Langflow IDE 和运行时

在 Kubernetes 上部署 Langflow 的好处

在 Kubernetes 上部署具有以下优势:

  • 可扩展性:Kubernetes 允许您扩展 Langflow 服务以满足工作负载的需求。

  • 可用性和韧性:Kubernetes 提供内置的韧性功能,如自动故障转移和自愈,以确保 Langflow 服务始终可用。

  • 安全性:Kubernetes 提供安全功能,如基于角色的访问控制和网络隔离,以保护 Langflow 服务及其数据。

  • 可移植性:Kubernetes 是一个可移植的平台,这意味着您可以将 Langflow 服务部署到任何 Kubernetes 集群,无论是本地还是云端。

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

Langflow 部署

一个典型的 Langflow 部署包括:

  • Langflow 服务:Langflow API,对于 IDE 部署还包括可视化编辑器。
  • Kubernetes 集群:Kubernetes 集群提供了一个部署和管理 Langflow 及其支持服务的平台。
  • 持久化存储:持久化存储用于存储 Langflow 服务的数据,如模型和训练数据。
  • Ingress 控制器:Ingress 控制器为进入 Langflow 服务的流量提供单一入口点。
  • 负载均衡器:在多个 Langflow 副本之间平衡流量。
  • 向量数据库:如果您将 Langflow 用于 RAG,可以与 Astra Serverless 中的向量数据库集成。

Kubernetes 上的 Langflow 参考架构

环境隔离

建议为 Langflow 部署和运行独立的开发和生产环境:

  • 在开发环境中部署 IDE,开发人员在此进行原型设计并测试新的工作流。
  • 在生产环境中部署运行时,将工作流作为独立服务提供。

Langflow 环境

这种分离旨在增强安全性,支持有组织的数据开发管道,并优化基础设施资源分配:

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

下一步

Search