使用 Openshift 部署 SCDF

Deploying SCDF with Openshift

我正在尝试使用 Openshift 控制台在 Openshift 中部署 SCDF。我正在按照以下文章中的说明进行操作,

Deploying with kubectl,

这里有 5 个步骤可以在 kubernates 中成功部署 scdf。我的问题是,我们是否需要执行所有这些步骤。

选择消息代理:

   When would be this service required exactly? I don't understand it's use completely here in my spring batch app.
  1. 部署MySQL

    • 我计划不执行此步骤,而是将我的 Oracle 驱动程序属性添加到 "src/kubernetes/server/server-config.yaml"。这会影响应用程序启动吗?
  2. 部署 Prometheus 和 Grafana

    • 删除它们,因为现在不需要它们。
  3. 创建数据流角色绑定和服务帐户
    • 虽然我执行了这一步,但它是强制性的吗?我猜管理员可以从控制台本身添加,如果我没记错的话。
  4. 部署船长
    • 我正在使用 Spring 批处理应用程序,而不是使用流。如果它只是 spring 批处理应用程序(只有读者、作者和听众),我们还需要船长吗?
  5. 部署数据流服务器
    • 排除万难后部署这个。

更新

src/kubernetes/server/server-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: scdf-server
  labels:
    app: scdf-server
data:
  application.yaml: |-
    spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
                  default:
                    limits:
                      memory: 1024Mi
      **datasource:
        url: jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/mysql
        username: root
        password: ${mysql-root-password}
        driverClassName: org.mariadb.jdbc.Driver
        testOnBorrow: true
        validationQuery: "SELECT 1"**

请花点时间查看文档中的 concepts and architecture 细节。

仅当您在 SCDF 中使用流式传输功能时才需要消息代理。 Skipper 仅在流式用例中也是必需的,因此您可以忽略两者。

关于那个主题,我们有一个 batch-only recipe 来帮助突出差异。虽然配方本身是针对本地部署体验的,但只要您在 SCDF 中设置正确的功能切换属性,它对于 K8s 是相似的。

1) 您可以使用任何支持的 RDBMS options.

2) 如果你不需要,当然可以。

3) 必填项。管理员或具有足够权限的人可以帮助为给定的 SCDF 部署设置一次,因此 CRUD 操作在集群边界内进行管理。

4) 如果您处于仅批处理模式,则不需要它。