首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何包含在kubernetes上运行星火提交作业的安全上下文

如何包含在kubernetes上运行星火提交作业的安全上下文
EN

Stack Overflow用户
提问于 2021-11-22 20:13:13
回答 1查看 473关注 0票数 2

我使用Spark2.4.5在kubernetes上通过submit命令运行Spark应用程序。应用程序试图将输出写入详细的这里时失败,这可能是由于安全上下文不正确造成的。因此,我尝试设置一个安全上下文并运行应用程序。我这样做是通过像前面提到的这里那样创建一个pod模板,但是我还无法验证这个pod模板是否已经正确设置(因为我找不到合适的示例),或者它是否可以从驱动程序和执行器荚中访问(因为我无法在驱动程序或kubernetes日志中找到与模板相关的任何内容)。这是我用来设置安全上下文的pod模板的内容。

代码语言:javascript
运行
复制
apiVersion: v1
kind: Pod
metadata:
 name: spark-pod-template
spec:
  securityContext:
    runAsUser: 1000

这是我使用的命令。

代码语言:javascript
运行
复制
 <SPARK_PATH>/bin/spark-submit --master k8s://https://dssparkcluster-dns-fa326f6a.hcp.southcentralus.azmk8s.io:443 \
 --deploy-mode cluster  --name spark-pi3 --conf spark.executor.instances=2 \
 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
 --conf spark.kubernetes.container.image=docker.io/datamechanics/spark:2.4.5-hadoop-3.1.0-java-8-scala-2.11-python-3.7-dm14 \
 --conf spark.kubernetes.driver.volumes.persistentVolumeClaim.azure-fileshare-pvc.options.claimName=azure-fileshare-pvc \
 --conf spark.kubernetes.driver.volumes.persistentVolumeClaim.azure-fileshare-pvc.mount.path=/opt/spark/work-dir \
 --conf spark.kubernetes.executor.volumes.persistentVolumeClaim.azure-fileshare-pvc.options.claimName=azure-fileshare-pvc \
 --conf spark.kubernetes.executor.volumes.persistentVolumeClaim.azure-fileshare-pvc.mount.path=/opt/spark/work-dir \
 --conf spark.kubernetes.driver.podTemplateFile=/opt/spark/work-dir/spark_pod_template.yml \
 --conf spark.kubernetes.executor.podTemplateFile=/opt/spark/work-dir/spark_pod_template.yml \
 --verbose /opt/spark/work-dir/wordcount2.py

我已经将pod模板文件放置在一个挂载在/opt/spark/work-dir上的持久卷中。我要问的问题是:

  1. 从持久卷中可以访问pod模板文件吗?
  2. 文件内容是否符合设置runAsUser的适当格式?
  3. 星火2.4.5是否支持pod模板功能?虽然在2.4.5 文档中提到可以使用pod模板实现安全上下文,但是没有像3.2.0 文档中那样的pod模板部分。

任何帮助都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-14 16:19:42

你可以在https://spark.apache.org/docs/latest/running-on-kubernetes.html#pod-template上读到

spark.kubernetes.executor.podTemplateFile指向火花提交过程可访问的文件.

因此,在这里,没有任何关于PVC,但当地的FS,火花提交发送。顺便说一句,您可以通过检查生成的吊舱来检查它是否有效。

良好的吊舱和集装箱安全-上下文:

代码语言:javascript
运行
复制
      securityContext:
        fsGroup: 1000
        runAsGroup: 1000
        runAsNonRoot: true
        runAsUser: 1000
      containers:
        - name: spark
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            readOnlyRootFilesystem: true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70071849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档