我需要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
答案 0 :(得分:0)
您设置为deploymentServiceAccountName
的{{3}}之一,可用于部署流应用程序或启动任务应用程序。
上述配置似乎没有应用到您的SCDF或Skipper服务器配置属性,因为它们至少应在部署应用程序时应用。
对于SCDF服务器和Skipper服务器,在SCDF / Skipper服务器部署配置中,您需要显式设置serviceAccountName
(而不是顾名思义的deploymentServiceAccountName
,deploymentServiceAccountName
部署后,将在内部转换为各个流/任务应用的实际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的本地文件系统非常重要