【问题标题】:Deploying SCDF with Openshift使用 Openshift 部署 SCDF
【发布时间】:2020-09-06 00:02:48
【问题描述】:

我正在尝试使用 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"**

【问题讨论】:

    标签: java kubernetes spring-batch openshift spring-cloud-dataflow


    【解决方案1】:

    请花一些时间查看文档中的 concepts and architecture 详细信息。

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

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

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

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

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

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

    【讨论】:

    • @Anandhan,感谢您的快速回复。还有一个后续问题。对于 RDBMS 选项,如果我必须设置 db 映像,我可以在哪里找到 Oracle 数据库的 yaml 文件?我尝试为 oracle 更改 mysql yaml 文件。但它没有用。图片拉取失败。
    • 我想使用 Oracle 需要许可证。考虑到许可问题,我们通常不会为 Oracle 包含任何图像或 YAML 配置。您可能想联系 Oracle 支持,或者可能有关于同一主题的支持/论坛问题,这可能有助于指导。
    • 感谢 Anandhan。我浏览了您提供的链接。但是我没有看到或错过的一件事是第一步的确切用途。在这里如何设置 RDBMS 容器?因为如果我在 server-config.yaml 中传递数据源详细信息(答案中已更新),则不需要容器应用程序(第一步),不是吗?
    • 如果您在 K8s 之外的其他地方运行 Oracle,那么您只需要连接属性。您不需要预配 Oracle,因此不需要相应的部署规范。但是,您仍然需要使用类路径中的 Oracle 驱动程序自定义构建 SCDF 映像。
    • 是的,Oracle 在单独的服务器(非 K8)中运行。在我不需要的第一步中,整个 Oracle Db 正在加载并没有让我感到震惊。我现在很清楚了。谢谢阿南丹。
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2015-07-20
    • 2016-07-23
    • 1970-01-01
    相关资源
    最近更新 更多