kubernetes - 如何配置 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
问题 -
- 如何让任务在
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:
生效。
推荐阅读
- python - 使用 Python 解析无效 JSON - 无效转义导致错误
- python - 如果用户给出了错误的答案,我如何重复输入字符串?
- javascript - 为什么 [1,2,3] <= [1,2,3] 在 javascript 中为真?
- reactjs - 无法读取未定义的属性“showNotification”
- django - 将 BinaryField 的文件上传小部件添加到 Django Admin
- c++ - 我需要做什么才能让 cocoapods 用 C++ 构建?
- angular - 不调用订阅的角度http更新
- reactjs - 访问 Observable 数组的元素
- amazon-web-services - aws - 如何将 API Gateway 中的阶段变量传递给 Lambda 函数?
- jquery - FancyBox - 单击时交换图像