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

查看:42
本文介绍了Kubernetes - 为每个卷(而不是每个 pod)设置自定义权限/文件所有权的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is there any way to set per-volume permissions/ownership in Kubernetes declaratively?

用例:

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

我们知道我们可以使用 fsGroup,但这是一个 pod 级别的声明.所以即使我们在第一个容器中选择 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-container 来改变挂载目录的权限.

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天全站免登陆