GCP


先决条件

  1. 记下您的Google Cloud项目ID

  2. 安装Git

设置 Kubernetes 集群

  1. 如果没有Kubernetes集群,请创建一个。

点击“Clusters”创建一个集群。
  1. 为集群命名,选择正确的资源位置,启用“Autopilot”模式,并保持所有其他配置为默认设置。

  2. 集群创建完成后,从操作菜单中点击“连接”菜单

  1. 复制命令并将其粘贴到终端中,然后按下回车键以连接您的集群。

  2. 运行以下命令并选择正确的上下文名称,该名称类似于gke_[ProjectId]_[DataCenter]_[ClusterName]

kubectl 配置获取上下文
  1. 设置当前上下文

kubectl config use-context gke_[项目ID]_[数据中心]_[集群名称]

构建并推送Docker镜像

运行以下命令以构建Docker镜像并将其推送到GCP容器注册表。

  1. 克隆Flowise

git clone https://github.com/FlowiseAI/Flowise.git
  1. 构建Flowise

cd Flowise
pnpm 安装
pnpm 构建
  1. Dockerfile文件进行小幅更新。

指定nodejs的平台

FROM --platform=linux/amd64 node:18-alpine

添加python3、make和g++进行安装

使用apk添加 --no-cache python3 make g++
  1. 构建为Docker镜像,确保Docker桌面应用程序正在运行

docker build -t gcr.io/[ProjectId]/flowise:dev 。
  1. 将Docker镜像推送到GCP容器注册表。

docker push gcr.io/[项目ID]/flowise:dev

部署到 GCP

  1. 在项目中创建一个名为yamls的根文件夹。

  2. deployment.yaml文件添加到该文件夹中。

# deployment.yaml
apiVersion: apps/v1
类型:部署
元数据:
  名称:flowise
  标签:
    应用:flowise
规格:
  选择器:
    匹配标签:
      应用:flowise
  副本数:1
  模板:
    元数据:
      标签:
        应用:flowise
    规格:
      容器:
      - 名称:flowise
        镜像:gcr.io/[ProjectID]/flowise:dev
        镜像拉取策略:始终
        资源:
请求:
            cpu: "1"
            内存:“1Gi”
  1. service.yaml文件添加到该文件夹中。

# service.yaml
apiVersion: "v1"
类型:“服务”
元数据:
  名称:"flowise-service"
  命名空间:"default"
  标签:
    应用程序:“flowise”
规格:
  端口:
  - 协议:"TCP"
    端口:80
    目标端口:3000
  选择器:
    应用程序:"flowise"
  类型:"LoadBalancer"

它看起来会像下面这样。

  1. 通过运行以下命令来部署yaml文件。

使用 kubectl 命令,根据文件路径 yamls/deployment.yaml 中的内容来应用配置
使用 kubectl 命令,根据 yamls/service.yaml 文件进行应用
  1. 前往GCP中的“工作负载”页面,你可以看到你的Pod正在运行。

  1. 前往“服务和入口”页面,你可以点击托管Flowise的“端点”。

恭喜!

您已成功在GCP上托管了Flowise应用程序🥳

超时

默认情况下,Google Cloud Platform(GCP)为代理分配了30秒的超时时间。当响应时间超过30秒阈值时,就会出现问题。为了解决这个问题,请对YAML文件进行以下更改:

注意:要将超时设置为10分钟(例如)——我们将在下面指定600秒。

  1. 创建一个名为backendconfig.yaml的文件,内容如下:


apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: flowise-backendconfig
  namespace: your-namespace
spec:
  timeoutSec: 600
  1. Issue: kubectl apply -f backendconfig.yaml

  2. Update your service.yaml file with the following reference to the BackendConfig:

apiVersion: v1
kind: Service
metadata:
  annotations:
    cloud.google.com/backend-config: '{"default": "flowise-backendconfig"}'
  name: flowise-service
  namespace: your-namespace
...
  1. Issue: kubectl apply -f service.yaml

Last updated