Kubernetes-设置每个卷(而不是每个Pod)的自定义权限/文件所有权 [英] Kubernetes - setting custom permissions/file ownership per volume (and not per pod)

查看:759
本文介绍了Kubernetes-设置每个卷(而不是每个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆