为 spring 云数据流任务和 kubernetes 上的流部署设置节点选择器
Setting node selector for spring cloud dataflow task and stream deployments on kubernetes
我们想将所有 spring 云数据流任务和流部署修复到一组特定的节点。
我有这个手动工作的示例任务,例如
task launch test-timestamp --properties "deployer.*.kubernetes.deployment.nodeSelector=env:development"
(这并不明显,因为此处的文档 https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#configuration-kubernetes-deployer 似乎暗示关键只是 nodeSelector 而不是 deployment.nodeSelector)
这正确地将节点选择器添加到 kubernetes 的 pod yaml 中。
但我希望它自动设置,即使用 SCDF 服务器配置中的 task.platform.kubernetes.accounts.default
属性。
我试过:
task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development
和
task.platform.kubernetes.accounts.default.nodeSelector: env:development
但似乎都不起作用。正确的配置方法是什么?
通过 skipper 进行流部署的相同问题。
另外,如何为计划任务设置它?
抱歉,您必须尝试一些选项才能找到真正有效的正确部署程序 属性。
一般来说,根据 SCDF 的 Shell/UI,deployer
标记是 spring.cloud.deployer.kubernetes
属性 的 short-form。当您要在 stream/task 中配置更多部署程序属性时,需要重复提供这些内容,因此我们有一个 short-form。
但是,nodeSelector
不是具有默认值的 deployer-level 属性。它仅作为部署级别 属性 提供,这意味着它 仅 作为每个部署基础的选项提供。
换句话说,它不能作为 "global" 配置的一个选项,所以这就是 task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development
没有考虑在内的原因。通过 Skipper 的 Streams 也是如此。
虽然可以改进。我创建了 spring-cloud/spring-cloud-deployer-kubernetes#300 用于跟踪 - 请随时订阅通知。然后,Streams 和 Tasks 都应该能够将其用作全局配置。合并 PR 后,您应该可以尝试使用 SCDF 的 2.2.0.BUILD-SNAPSHOT
图像。
至于 K8s-scheduler 实现,我们还不支持 nodeSelectors
。我创建了 spring-cloud/spring-cloud-scheduler-kubernetes#25 - 如果您想从 K8s-deployer 移植功能,我们可以在 PR 上进行协作。
我们想将所有 spring 云数据流任务和流部署修复到一组特定的节点。
我有这个手动工作的示例任务,例如
task launch test-timestamp --properties "deployer.*.kubernetes.deployment.nodeSelector=env:development"
(这并不明显,因为此处的文档 https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#configuration-kubernetes-deployer 似乎暗示关键只是 nodeSelector 而不是 deployment.nodeSelector)
这正确地将节点选择器添加到 kubernetes 的 pod yaml 中。
但我希望它自动设置,即使用 SCDF 服务器配置中的 task.platform.kubernetes.accounts.default
属性。
我试过:
task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development
和
task.platform.kubernetes.accounts.default.nodeSelector: env:development
但似乎都不起作用。正确的配置方法是什么?
通过 skipper 进行流部署的相同问题。
另外,如何为计划任务设置它?
抱歉,您必须尝试一些选项才能找到真正有效的正确部署程序 属性。
一般来说,根据 SCDF 的 Shell/UI,deployer
标记是 spring.cloud.deployer.kubernetes
属性 的 short-form。当您要在 stream/task 中配置更多部署程序属性时,需要重复提供这些内容,因此我们有一个 short-form。
但是,nodeSelector
不是具有默认值的 deployer-level 属性。它仅作为部署级别 属性 提供,这意味着它 仅 作为每个部署基础的选项提供。
换句话说,它不能作为 "global" 配置的一个选项,所以这就是 task.platform.kubernetes.accounts.default.deployment.nodeSelector: env:development
没有考虑在内的原因。通过 Skipper 的 Streams 也是如此。
虽然可以改进。我创建了 spring-cloud/spring-cloud-deployer-kubernetes#300 用于跟踪 - 请随时订阅通知。然后,Streams 和 Tasks 都应该能够将其用作全局配置。合并 PR 后,您应该可以尝试使用 SCDF 的 2.2.0.BUILD-SNAPSHOT
图像。
至于 K8s-scheduler 实现,我们还不支持 nodeSelectors
。我创建了 spring-cloud/spring-cloud-scheduler-kubernetes#25 - 如果您想从 K8s-deployer 移植功能,我们可以在 PR 上进行协作。