Kubernetes - 为每个卷(而不是每个 pod)设置自定义权限/文件所有权

Ada*_*ski 6 kubernetes

有没有办法在 Kubernetes 中以声明方式设置每个卷的权限/所有权?

用例:

  • 一个 Pod 由两个容器组成,作为两个不同的用户/组运行,它们都是非 root 用户,并且无法 sudo
  • 容器分别挂载一个卷,并需要在这些卷中创建文件(例如,它们都想写入日志)

我们知道我们可以使用fsGroup,但这是一个 pod 级别的声明。所以即使我们在第一个容器中选择 fsGroup 等于用户,那么我们也会在另一个容器中遇到权限问题。(参考:Kubernetes:如何设置 VolumeMount 用户组和文件权限

Ada*_*ski 7

一种解决方案是使用 init-container 更改已安装目录的权限

初始化容器需要安装两个卷(来自两个容器),并执行所需的chown/chmod操作。

缺点:

  • 需要了解其他容器的特定信息(即 uid/gid)的额外容器
  • init容器需要以root身份运行才能执行chown

  • 嗨@Adam - 你能找到替代解决方案吗? (2认同)