【问题标题】:Dataflow in OpenShift: Configure memory for individual Dataflow tasksOpenShift 中的数据流:为单个数据流任务配置内存
【发布时间】:2021-07-17 10:07:47
【问题描述】:

我想使用自己的内存请求和限制值配置各个数据流任务。默认配置适用于大多数任务,但我们有一些任务需要更高的内存。我们可以从具有自己属性的数据流中启动这些任务,覆盖默认配置。但是是否可以在 OpenShift 的 dataflow-config 中针对单个任务进行配置? (这样我们就不必在每次启动任务时都使用那些压倒一切的参数)。

类似这样的:

deployer:
      kubernetes:
        requests:
          memory: '256Mi'
          cpu: '1m'
        limits:
          memory: '4Gi'
          cpu: '6000m'
my-individual-task:
          kubernetes:
            requests:
              memory: '8G'
            limits:
              memory :'8G'

使用此配置进行测试,“my-individual-task”的默认配置为 256Mi-4Gi 而不是 8G-8G。 (在开始任务之前,我使用新配置重新启动了数据流 pod)。⠀⠀⠀⠀⠀⠀⠀

【问题讨论】:

    标签: openshift spring-cloud-dataflow


    【解决方案1】:

    您不应将特定于任务的属性设置为 服务器 级别的属性。相反,您可以在启动任务时将这些属性设置为任务启动属性。例如:

    task launch mytask --properties "deployer.my-individual-task.kubernetes.requests.memory=8G,deployer.my-individual-task.kubernetes.limits.memory=8G"
    

    【讨论】:

      【解决方案2】:

      使用此配置进行测试,“my-individual-task”的默认配置为 256Mi-4Gi 而不是 8G-8G

      根据我的经验,成功更改单个任务的内存和 CPU 的唯一方法是在从 Data Flow Server UI(作为属性)启动任务时或在使用 Task Java DSL 时提供以下属性:

      deployer.<application>.kubernetes.limits.cpu=1000m
      deployer.<application>.kubernetes.limits.memory=1024Mi
      deployer.<application>.kubernetes.requests.cpu=800m
      deployer.<application>.kubernetes.requests.memory=640Mi
      

      注意:在 application.properties 或 applicaiton.yaml 文件中指定这些不会产生任何影响。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-27
        • 1970-01-01
        • 2019-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多