[ 
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 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.

  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 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.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to