当我使用 s3fs 将 s3 存储桶挂载到 Kubernetes Pod 时,未列出来自 S3 存储桶的文件

问题描述

我正在尝试使用 s3fs 使用 Kubernetes pod 挂载 Amazon S3 存储桶。我关注了这篇文章 https://icicimov.github.io/blog/virtualization/Kubernetes-shared-storage-with-S3-backend/

用于使用 s3fs 作为 docker 映像设置存储。但是我使用 IAM 角色而不是使用访问密钥和秘密密钥来对来自 Kubernetes Pod 的 S3 存储桶进行身份验证。这就是我所做的

  • 我创建了一个单独的 IAM 角色和 IAM 策略,并拥有在 S3 存储桶中读取和写入文件的必要权限
  • 我还创建了一个单独的 docker 镜像,安装了 s3fs 并在 docker 入口点执行以下命令 exec /usr/local/bin/s3fs $AWS_S3BUCKET $MNT_POINT -f -o iam_role=${AWS_IAM_ROLE} -o endpoint=${AWS_S3BUCKET_REGION} -o use_cache=/tmp
  • 使用必要的环境变量创建 K8 部署脚本,并将创建的 docker 工件部署到 EKS 集群。我还创建了 K8 ServiceAccount,并添加了 IAM 角色注释。
  • 当我部署创建的 docker 工件时,我可以看到 pod 创建成功,并且能够看到 pod 内的 ServiceAccount 令牌。
  • 但是我无法看到来自 Kubernetes pod 的任何日志,每当我尝试访问日志时,pod 会在一段时间后退出
  • 我也尝试进入 pod 并尝试运行以下命令
/usr/local/bin/s3fs s3-bucket /data -f -o iam_role=IAM_role -o endpoint='us-east-1' -o use_cache=/tmp

当我运行上述命令并在一段时间后退出 pod 时,我收到以下消息

[INF] curl.cpp:InitMimeType(438): 从 /etc/mime.types 加载 MIME 信息 [INF] s3fs.cpp:s3fs_init(3304): init v1.88(commit:6d65e30) with OpenSSL

关于这个问题的任何建议都会很棒。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)