第 2 章 构建和部署无服务器工作流


要部署工作流并使其在 Orchestrator 插件中可用,请按照以下步骤操作:

  • 构建工作流镜像
  • 生成工作流清单
  • 在集群中添加工作流

此过程将工作流从本地机器移到集群中的部署。

2.1. 工作流镜像的好处

虽然 OpenShift Serverless Logic Operator 支持动态构建工作流,但这种方法主要用于试验。对于生产环境部署,构建镜像是如下原因的首选方法:

  • 生产环境就绪:在上线前,可以扫描、保护和测试预构建的镜像。
  • GitOps 兼容性: Orchestrator 依赖于 OpenShift Serverless Logic Operator 实例来跟踪工作流及其状态。要使用此跟踪服务,您必须使用 gitops 配置集部署工作流,这需要一个预构建的镜像。
  • 测试和质量:构建镜像可让您更好地控制测试过程。

2.1.1. 项目结构概述

项目使用 Quarkus 项目布局 (Maven 项目结构)。以下 01_basic 工作流示例说明了此结构:

01_basic
├── pom.xml
├── README.md
└── src
    └── main
        ├── docker
        │   ├── Dockerfile.jvm
        │   ├── Dockerfile.legacy-jar
        │   ├── Dockerfile.native
        │   └── Dockerfile.native-micro
        └── resources
            ├── application.properties
            ├── basic.svg
            ├── basic.sw.yaml
            ├── schemas
            │   ├── basic__main-schema.json
            │   └── workflow-output-schema.json
            └── secret.properties
Copy to Clipboard Toggle word wrap

主工作流资源位于 src/main/resources/ 目录下。

kn-workflow CLI 生成此项目结构。您可以按照 Getting Started 指南 尝试生成自己的结构。如需有关 Quarkus 项目的更多信息,请参阅创建第一个应用程序

2.1.2. 在本地创建并运行无服务器工作流项目

kn-workflow CLI 是生成工作流清单和项目结构的基本工具。为确保成功的开发和立即测试,请完成以下步骤,在本地开发新的无服务器工作流:

流程

  1. 使用 kn-workflow CLI 创建新的工作流项目,它遵循 Quarkus 结构,如下例所示:

    kn-workflow quarkus create --name <specify project name, for example ,00_new_project>
    Copy to Clipboard Toggle word wrap
  2. 编辑工作流,添加 schema 和特定文件,并从项目文件夹在本地运行,如下例所示:

    kn-workflow quarkus run
    Copy to Clipboard Toggle word wrap
  3. 使用 kn-workflow 运行在本地运行工作流,该运行 会拉取以下镜像:

    registry.redhat.io/openshift-serverless-1/logic-swf-devmode-rhel8:1.36.0
    Copy to Clipboard Toggle word wrap
  4. 要构建工作流镜像,kn-workflow CLI 会拉取以下镜像:

    registry.redhat.io/openshift-serverless-1/logic-swf-builder-rhel8:1.36.0-8
    registry.access.redhat.com/ubi9/openjdk-17:1.21-2
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat