KubernetesRun since up a job. This is the client. DaskExecutor spins up the scheduler and workers so the Kubernetes image is independent from the DaskExecutor because it spins that up separately.
With Dask though, the three are related and often need matching packages. My understanding is that the client sends work to the scheduler, which sends work to workers, so all 3 would ideally need similar versions.