scdf 2.1 k8s配置安全上下文非root无fs可写

时间:2019-07-04 15:13:11

标签: spring-cloud-dataflow

我需要config scdf2船长,scdf和应用程序pod才能在没有root的情况下运行,也无需写入文件系统pod。

我对config yamls进行了更改 数据:   application.yaml:|-     弹簧:       云:         船长:           服务器:             平台:               kubernetes:                 帐户:                   默认值:
                    命名空间:默认                     deploymentServiceAccountName:scdf2-服务器数据流                     securityContext:                       runAsUser:2000                       allowPrivilegeEscalation:否                     限制: 可乐

scdf start以用户“ 2000”运行(可写本地maven存储库存在问题,已通过pvc nfs修复)...

但是,应用程序pod始终以root用户身份启动,没有2000个用户身份。 我已经用securitycontext更改了skipper-config,..有什么线索吗?

TX

2 个答案:

答案 0 :(得分:0)

您设置为deploymentServiceAccountName的{​​{3}}之一,可用于部署流应用程序或启动任务应用程序。

上述配置似乎没有应用到您的SCDF或Skipper服务器配置属性,因为它们至少应在部署应用程序时应用。

对于SCDF服务器和Skipper服务器,在SCDF / Skipper服务器部署配置中,您需要显式设置serviceAccountName(而不是顾名思义的deploymentServiceAccountNamedeploymentServiceAccountName部署后,将在内部转换为各个流/任务应用的实际serviceAccountName

答案 1 :(得分:0)

我们明白了。我们将其用于skipp / scdf部署,而不是在pod部署中。 您的要求:

进入scdf /跳过器cfg部署中得到了

spec:
   containers:
     - name: {{ template "scdf.fullname" . }}-server
       image: {{ .Values.server.image }}:{{ .Values.server.version }}
       imagePullPolicy: {{ .Values.server.imagePullPolicy }}
       volumeMounts:
       ...
     serviceAccountName: {{ template "scdf.serviceAccountName" . }}

您是否告诉我将配置映射scdf / skipper更改为任务和流?配置中或之前关于部署的另一个属性

关于“ serviceaccount”和用户运行到pod中的过程有什么关系? 服务帐户与正在运行的进程用户“ 2000”如何关联

我听不懂。

请帮助,在没有root的情况下运行,并且除了“ tmp”文件外,不要使用pod的本地文件系统非常重要