kubernetes:使用valueFrom在环境变量中使用runAsUser的值?
我有一个kubernetes部署,它启动一个pod,在它的kubernetes:使用valueFrom在环境变量中使用runAsUser的值?,kubernetes,security-context,Kubernetes,Security Context,我有一个kubernetes部署,它启动一个pod,在它的securityContext中包含一个runAsUser键。我希望我可以在initContainer的环境中使用以下内容来粘贴此值: apiVersion: apps/v1 kind: Deployment metadata: name: testdeployment spec: template: spec: containers: - name: myservice i
securityContext
中包含一个runAsUser
键。我希望我可以在initContainer的环境中使用以下内容来粘贴此值:
apiVersion: apps/v1
kind: Deployment
metadata:
name: testdeployment
spec:
template:
spec:
containers:
- name: myservice
image: myimage
securityContext:
runAsUser: 1000
initContainers:
- name: initialize_things
image: myimage
env:
- name: CONTAINER_UID
valueFrom:
fieldRef:
fieldPath: spec.containers[0].securityContext.runAsUser
这似乎不起作用:
部署“testdeployment”无效:spec.template.spec.initContainers[0]。env[0]。valueFrom.fieldRef.fieldPath:无效值:“spec.containers[0]。securityContext.runAsUser”:转换字段路径时出错:不支持字段标签:spec.containers[0]。securityContext.runAsUser
有什么办法可以让这一切顺利进行吗?我正在尝试减少硬编码该UID的位置数。我认为您无法做到这一点,因为不支持
spec.containers[0].securityContext.runAsUser
作为字段
顺便说一句,在您的情况下,更符合逻辑的是放置完整路径,我的意思是spec.template.spec.containers[0].securityContext.runAsUser
,但无论如何,它不会有帮助
根据-您只能使用几个字段
Information available via fieldRef:
metadata.name
metadata.namespace
metadata.uid
metadata.labels['<KEY>']
metadata.annotations['<KEY>']
In addition, the following information is available through downwardAPI volume fieldRef:
metadata.labels
metadata.annotations
The following information is available through environment variables:
status.podIP
spec.serviceAccountName
spec.nodeName
status.hostIP
可通过fieldRef获得的信息:
元数据名称
metadata.namespace
元数据.uid
元数据.标签[“”]
元数据.注释[“”]
此外,可通过downwardAPI volume fieldRef获得以下信息:
元数据标签
元数据.注释
以下信息可通过环境变量获得:
地位
规范serviceAccountName
规范节点名称
hostIP
您可以在github closed上找到非常类似的问题:您明确需要它的地方?你能从代码中调用像
getuid()
这样的函数来检索它吗?我不能:我需要在以root
身份运行的initContainer
中使用它,以便为具有runAsUser
安全上下文的容器设置文件系统权限。我试图在问题中明确说明这一点;如果不清楚的话,我道歉。