【问题标题】:automate spring cloud dataflow stream creation and deployment in kubernetes在 Kubernetes 中自动创建和部署 Spring Cloud 数据流流
【发布时间】:2019-12-18 14:11:00
【问题描述】:

我有一个示例 SCDF 数据流流应用程序,它能够部署并使其在 kubernetes 中运行。但我依靠数据流仪表板创建指向 docker 映像的应用程序,然后定义流并添加属性并部署它。现在我正在尝试自动化在数据流服务器控制台中创建应用程序的手动步骤,创建流定义并部署它。是否有相同的示例项目或参考。

【问题讨论】:

    标签: spring-cloud-stream spring-cloud-dataflow spring-cloud-config spring-cloud-kubernetes


    【解决方案1】:

    这里有几个选项。

    1) 我们依靠 SCDF 的 Java DSLautomate and acceptance-test 在所有支持的平台上注册、创建和部署流和任务。您将在自定义 Java/Boot 应用程序中将 spring-cloud-dataflow-rest-client 作为依赖项;这样,您就可以访问DataFlowOperations,这将允许您通过 Shell 或 UI 执行所有可以执行的操作。看看TickTockTests.java 了解一下。事实上,我们在内部也使用这种模式进行集成测试(参见:DockerComposeIT.java)。

    2) REST API:您可以使用流/任务的create, deploy/launch, or stream update API 作为 CI 工具和工作流的一部分。您可以灵活地通过脚本或其他方式调用它们。这个概念是在webinar 上提出的——它可能会给你一些想法。

    【讨论】:

    • 非常感谢萨比。会试试看。
    【解决方案2】:

    有几种方法可以自动化您的流创建和部署过程。 Spring Cloud Data Flow Dashboard 只是 SCDF 服务器的 REST 客户端之一。 Spring Cloud Data Flow 生态系统提供了很少的其他 REST 客户端实现。

    外壳接口:https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#shell

    使用它,您可以创建一个包含所有流创建和部署命令的脚本文件。您可以从一个环境到另一个环境执行此脚本(例如从开发到登台到生产)。这种方法唯一需要注意的是,shell 命令发送的操作本质上主要是asynchronous,因此您需要添加显式检查或超时或睡眠以确保您逐步运行 shell 命令。

    Java DSL

    SCDF REST 客户端也有一个 Java DSL,如 here。您可以使用显式应用程序以编程方式创建流并部署它们。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多