Kubernetes Pod 中文档文件的权限,具有单独的 Nginx 和 FPM 容器
Permissions for Document Files in Kubernetes Pod, with Separate Nginx and FPM Containers
给定一个 pod 运行 一个 Nginx 容器和一个 PHP-FPM 容器,应用程序文档权限的最佳实践是什么?
目前我在容器之间共享一个卷,以便 Nginx 可以访问 PHP 文件。这行得通,但是文件由 FPM 容器中的用户 www-data
拥有,而 Nginx 容器中不存在该用户,导致它们由具有相同 UID 的任何用户拥有。
这显然是错误的,那什么是对的呢?到目前为止我考虑过的选项:
- 文件归
nobody:nogroup
所有
- 为 Nginx 复制文件,并将所有权分配给该容器中的
nginx
用户
- 对齐 UID
- 运行 Nginx 和 FPM 在同一个容器中
None 其中看起来很有吸引力。
这是 kubernetes 中 Security Context 的情况,您可以在其中为您的 pods.
指定 uid、gid 或补充 gid (fsgroup)
例如设置:
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
将使您进步 运行 作为用户 1000,主要组 3000 和补充组 2000。
您没有指定是否需要 pods 来编辑该卷中的文件,如果不是这种情况 - 仅添加 fsGroup
应该足以授予只读权限(通过默认)添加到您的文件,而不会以任何有意义的方式影响您现有的工作负载。
否则您可以强制使用相同的 UID,但这可能需要您重新配置您的应用程序
另请参阅:
给定一个 pod 运行 一个 Nginx 容器和一个 PHP-FPM 容器,应用程序文档权限的最佳实践是什么?
目前我在容器之间共享一个卷,以便 Nginx 可以访问 PHP 文件。这行得通,但是文件由 FPM 容器中的用户 www-data
拥有,而 Nginx 容器中不存在该用户,导致它们由具有相同 UID 的任何用户拥有。
这显然是错误的,那什么是对的呢?到目前为止我考虑过的选项:
- 文件归
nobody:nogroup
所有
- 为 Nginx 复制文件,并将所有权分配给该容器中的
nginx
用户 - 对齐 UID
- 运行 Nginx 和 FPM 在同一个容器中
None 其中看起来很有吸引力。
这是 kubernetes 中 Security Context 的情况,您可以在其中为您的 pods.
指定 uid、gid 或补充 gid (fsgroup)例如设置:
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
将使您进步 运行 作为用户 1000,主要组 3000 和补充组 2000。
您没有指定是否需要 pods 来编辑该卷中的文件,如果不是这种情况 - 仅添加 fsGroup
应该足以授予只读权限(通过默认)添加到您的文件,而不会以任何有意义的方式影响您现有的工作负载。
否则您可以强制使用相同的 UID,但这可能需要您重新配置您的应用程序
另请参阅: