如何配置Spring Cloud Data Flow以在每个任务的单独名称空间中执行任务?

问题描述

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

按照指南Spring Cloud Data Flow Tasks Configuration,并使用timestamp-task docker镜像,我在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

问题-

  • 如何使任务在my-dedicated-ns名称空间中运行?
  • spring.cloud.data.flow.platformname是什么,并且与之相关吗?我尝试在任务参数中设置它,但它始终显示认值。

编辑: 在我得到的任务窗格上运行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是干什么的呢?

解决方法

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

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

生效。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...