[ 
https://issues.apache.org/jira/browse/SPARK-23082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oz Ben-Ami updated SPARK-23082:
-------------------------------
    Description: 
In YARN, we can use {{spark.yarn.am.nodeLabelExpression}} to submit the Spark 
driver to a different set of nodes from its executors. In Kubernetes, we can 
specify {{spark.kubernetes.node.selector.[labelKey]}}, but we can't use 
separate options for the driver and executors.

This would be useful for the particular use case where executors can go on more 
ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot instances), 
but the driver should use a more persistent machine.

The required change would be minimal, essentially just using different config 
keys for the 
[driver|https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90]
 and 
[executor|https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73]
 instead of {{KUBERNETES_NODE_SELECTOR_PREFIX}} for both.

  was:
In YARN, we can use spark.yarn.am.nodeLabelExpression to submit the Spark 
driver to a different set of nodes from its executors. In Kubernetes, we can 
specify spark.kubernetes.node.selector.[labelKey], but we can't use separate 
options for the driver and executors.

This would be useful for the particular use case where executors can go on more 
ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot instances), 
but the driver should use a more persistent machine.

The required change would be minimal, essentially just using different config 
keys in 
[https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90]
 and 
[https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73]
 instead of KUBERNETES_NODE_SELECTOR_PREFIX for both.


> Allow separate node selectors for driver and executors in Kubernetes
> --------------------------------------------------------------------
>
>                 Key: SPARK-23082
>                 URL: https://issues.apache.org/jira/browse/SPARK-23082
>             Project: Spark
>          Issue Type: Improvement
>          Components: Kubernetes, Spark Submit
>    Affects Versions: 2.2.0, 2.3.0
>            Reporter: Oz Ben-Ami
>            Priority: Minor
>
> In YARN, we can use {{spark.yarn.am.nodeLabelExpression}} to submit the Spark 
> driver to a different set of nodes from its executors. In Kubernetes, we can 
> specify {{spark.kubernetes.node.selector.[labelKey]}}, but we can't use 
> separate options for the driver and executors.
> This would be useful for the particular use case where executors can go on 
> more ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot 
> instances), but the driver should use a more persistent machine.
> The required change would be minimal, essentially just using different config 
> keys for the 
> [driver|https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90]
>  and 
> [executor|https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73]
>  instead of {{KUBERNETES_NODE_SELECTOR_PREFIX}} for both.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to