When you run spark on serverless kubernetes cluster(virtual-kubelet). you need to specific the nodeSelectors,tolerations even nodeName when you want to gain better scheduling performance. Currently spark doesn't support tolerations. If you want to use this feature, You must use admission controller webhook to decorate the pod. But the performance is extremely bad. Here is the benchmark.
Batch Size: 500 Pod creation: about 7 Pods/s All Pods running: 5min
Batch Size: 500 Pod creation: more than 500 Pods/s All Pods running: 45s
Adding tolerations and nodeName in spark will bring great help when you want to run a large scale job on serverless kubernetes cluster.