OpenShift中的数据流:为单个数据流任务配置内存
我想用各自的内存请求和限制值来配置各个数据流任务。默认配置适用于大多数任务,但有些任务需要更高的内存。我们可以使用数据流中的属性启动这些任务,覆盖默认配置。但是,是否可以在OpenShift上的dataflow配置中对单个任务进行配置?(这样我们就不必在每次启动任务时都使用这些覆盖参数) 大概是这样的:OpenShift中的数据流:为单个数据流任务配置内存,openshift,spring-cloud-dataflow,Openshift,Spring Cloud Dataflow,我想用各自的内存请求和限制值来配置各个数据流任务。默认配置适用于大多数任务,但有些任务需要更高的内存。我们可以使用数据流中的属性启动这些任务,覆盖默认配置。但是,是否可以在OpenShift上的dataflow配置中对单个任务进行配置?(这样我们就不必在每次启动任务时都使用这些覆盖参数) 大概是这样的: deployer: kubernetes: requests: memory: '256Mi' cpu: '1m'
deployer:
kubernetes:
requests:
memory: '256Mi'
cpu: '1m'
limits:
memory: '4Gi'
cpu: '6000m'
my-individual-task:
kubernetes:
requests:
memory: '8G'
limits:
memory :'8G'
通过此配置测试,“我的个人任务”的默认配置是256Mi-4Gi,而不是8G-8G。(在开始任务之前,我使用新配置重新启动了dataflow pod)。⠀⠀⠀⠀⠀⠀⠀ 您不应该将特定于任务的属性设置为服务器级属性。相反,您可以在启动任务时将这些属性设置为任务启动属性。例如:
task launch mytask --properties "deployer.my-individual-task.kubernetes.requests.memory=8G,deployer.my-individual-task.kubernetes.limits.memory=8G"
通过此配置测试,“我的个人任务”的默认配置是256Mi-4Gi,而不是8G-8G
根据我的经验,成功更改单个任务的内存和CPU的唯一方法是在从Data Flow Server UI启动任务(作为属性)或使用任务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
deployer..kubernetes.limits.cpu=1000m
deployer..kubernetes.limits.memory=1024Mi
deployer..kubernetes.requests.cpu=800m
deployer..kubernetes.requests.memory=640Mi
注意:在application.properties或applicationon.yaml文件中指定这些内容不会产生任何影响