gpt4 book ai didi

amazon-web-services - 无法将 EFS 访问点安装到 ECS 卷

转载 作者:行者123 更新时间:2023-12-05 07:00:44 27 4
gpt4 key购买 nike

我在尝试通过 EFS 访问点将 ECS 卷挂载到 EFS 时遇到问题。

任务角色设置有对该文件系统的 ClientWrite、ClientRead 和 ClientRootAccess。

接入点设置为 posix 用户 ID 1001 和组 ID 1001,权限为 755。

集群和文件系统在正确的 VPC 中。

但 ECS 未能启动任务并出现此错误:

Error response from daemon: failed to copy file info for/var/lib/ecs/volumes/{{task-name}}: failed to chown/var/lib/ecs/volumes/{{task-name}}

如果我将接入点的 POSIX 用户 ID 和组 ID 设置为 0,就像在 root 中一样,我就能够启动任务。但我觉得它不是共享 FS 中出于安全原因的最佳选择。

经过一些一般搜索后,我形成一个假设,即在挂载卷后,容器或其主机的用户从 root 更改,这与 Dockerfile 中的任何进一步文件/目录操作相混淆。 AWS Access Points 文档指出:

When user enforcement is enabled, Amazon EFS replaces the NFS client'suser and group IDs with the identity configured on the access pointfor all file system operations.

而且因为我认为 /var/lib/ecs/volumes/... 实际上是容器或主机目录。

我怎样才能避免这个问题?

仅供引用:任务在 spot 实例集群中运行,因此在这种情况下手动挂载卷不是理想的解决方案

最佳答案

您尝试运行的 Docker 镜像中定义的 uid/gid 与您尝试使用的 1001/1001 uid/gid 之间是否存在不匹配?

当我们获取一个定义了卷的基础镜像并试图更改镜像中主要用户的 uid 时,我们遇到了同样的错误。由于您无法更改卷的文件所有权或权限,一旦创建卷,docker 守护程序将尝试将原始 uid 所有权应用于已安装的 EFS 卷,从而导致 EFS 访问点阻止所有权/权限的更改。

您可以通过在本地 shell 进入 docker 容器或运行 docker execls -la/path/to/container/folder 检查所有权该文件夹的 uid 设置为您的用户 1001。

关于amazon-web-services - 无法将 EFS 访问点安装到 ECS 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64058424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com