【发布时间】:2020-06-08 03:28:34
【问题描述】:
当我向 Kubernetes 提交 Spark 作业时,容器中的所有内容都以 root 身份运行。是否可以以其他用户身份运行作业?
当我在客户端模式下提交作业时,驱动程序以提交它的用户身份运行,但执行程序以 root 身份运行,这可能会导致访问执行程序创建的文件时出现文件访问问题。
【问题讨论】:
当我向 Kubernetes 提交 Spark 作业时,容器中的所有内容都以 root 身份运行。是否可以以其他用户身份运行作业?
当我在客户端模式下提交作业时,驱动程序以提交它的用户身份运行,但执行程序以 root 身份运行,这可能会导致访问执行程序创建的文件时出现文件访问问题。
【问题讨论】:
除非 K8s 上的 Spark 支持对 K8s Pod 的完全定制(特别是 runAsUser 功能),否则控制它的唯一方法(正如我目前所看到的)是:
- 在 Dockerfile 中构建指定 USER 的 docker 镜像
- 使用一些高级的 K8s 工具/控制器,例如Argo Events
- 自定义 spark-submit 或通过 K8s API 直接将 Spark Pods 提交为 Kubernetes Pods
希望很快看到 Spark v3.0.0 的一些改进。
【讨论】: