首页 > 解决方案 > 如何配置 Spring Cloud Data Flow 以在每个任务的单独命名空间中执行任务?

问题描述

我正在使用 Spring Cloud Data Flow 来编排任务应用程序的执行,并且需要在其专用命名空间中运行每个任务应用程序,并使用它自己的资源配额(有些可能是有保证的,有些可能是 Burstable)。

遵循Spring Cloud Data Flow Tasks Configuration中的指南,并使用timestamp-task docker image 我在我的server-config.yml

    spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
                  default:
                    limits:
                      memory: 1024Mi
                  my-dedicated-ns:
                    namespace: my-dedicated-ns
                    imagePullPolicy: Always
                    limits:
                      memory: 2048Mi

但是,当我使用参数启动任务时,--platformName=my-dedicated-ns任务仍然在运行 scdf 的默认命名空间中执行(我称之为 spring-cloud-dataflow)。

查看执行细节,我看到 -

--platformName: my-dedicated-ns
--spring.cloud.data.flow.platformname: default
--spring.cloud.task.executionid: 9

问题 -

编辑:kubectl describe在我得到的任务吊舱上运行-

kubectl describe pod/timestamp-task-9n5xq9o8y0
...
Name:         timestamp-task-9n5xq9o8y0
Namespace:    spring-cloud-dataflow

...

Containers:
  timestamp-task-z95kxp4r84:
    
    Image:         springcloudtask/timestamp-task
    
    Args:
      --platformName=my-dedicated-ns
      --spring.cloud.data.flow.platformname=default
      --spring.cloud.task.executionid=7

这表明 Spring Cloud Data Flow 服务器总是在同一个命名空间中运行任务,如果是这样,那是--platformName为了什么?

标签: kubernetesspring-cloud-dataflowspring-cloud-taskmicrok8s

解决方案


平台名称工作得很好,我不得不为新的命名空间定义重新启动 Spring Cloud Data Flow 服务器

spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:

生效。


推荐阅读