Kubernetes-设置每个卷(而不是每个Pod)的自定义权限/文件所有权 [英] Kubernetes - setting custom permissions/file ownership per volume (and not per pod)
问题描述
是否可以通过声明方式在Kubernetes中设置每卷权限/所有权?
Is there any way to set per-volume permissions/ownership in Kubernetes declaratively?
用例:
- pod由两个容器组成,以两个不同的用户/组的身份运行,它们都是非root用户,并且无法
sudo
- 每个容器都挂载一个卷,并且需要在这些卷中创建文件(例如,两个都想写日志)
我们知道我们可以使用fsGroup
,但这是一个容器级的声明.因此,即使我们在第一个容器中选择与用户相等的fsGroup,在另一个容器中也将存在权限问题. (参考: Kubernetes:如何设置VolumeMount用户组和文件权限)
We know that we can use fsGroup
, however that is a pod-level declaration. So even if we pick fsGroup equal to user in first container, then we are going to have permission issues in the other one. (ref: Kubernetes: how to set VolumeMount user group and file permissions)
推荐答案
一种解决方案是使用init容器更改已安装目录的权限.
init-container需要安装两个卷(从两个容器中),并执行所需的chown
/chmod
操作.
The init-container would need to mount both volumes (from both containers), and do the needed chown
/chmod
operations.
缺点:
- 需要了解其他容器的特定信息(例如,uid/gid)的额外容器
- init容器需要以root用户身份运行才能执行
chown
这篇关于Kubernetes-设置每个卷(而不是每个Pod)的自定义权限/文件所有权的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!