【问题标题】:Access S3 bucket without running aws configure with kubernetes在不使用 kubernetes 运行 aws configure 的情况下访问 S3 存储桶
【发布时间】:2020-01-27 23:09:45
【问题描述】:

我有一个 S3 存储桶,其中包含一些 sql 脚本和一些使用 mysqldump 的备份文件。

我还有一个部署新 mariadb 映像的 .yaml 文件。

由于我对 kubernetes 还不是很有经验,如果我想将其中一个备份文件恢复到 pod 中,我需要 bash 进入它,运行 aws cli,插入我的凭据,然后在本地同步存储桶并运行mysql

这显然破坏了全自动部署的概念。

那么,问题是……我怎样才能安全地使这个 pod 立即配置为访问 S3?

【问题讨论】:

  • 这些脚本是否会在每个新的 mrariadb pod 上运行?还是只是一次性任务? mariadb pod 是否有自己的持久化卷?

标签: amazon-s3 kubernetes aws-cli


【解决方案1】:

我认为您应该考虑在 pod 内安装 S3 存储桶。

这可以通过例如s3fs-fuse来实现。

关于Mounting a S3 bucket inside a Kubernetes podKubernetes shared storage with S3 backend 有两篇不错的文章,我建议您阅读这两篇文章以了解其工作原理。

您基本上必须从 Dockerfile 构建自己的映像并提供必要的 S3 存储桶信息和AWS security credentials

一旦您安装了存储,您就可以通过以下方式从中调用脚本:

apiVersion: v1
kind: Pod
metadata:
  name: test-world
spec:  # specification of the pod’s contents
  restartPolicy: Never
  containers:
  - name: hello
    image: debian
    command: ["/bin/sh","-c"]
    args: ["command one; command two && command three"]

【讨论】:

  • 太棒了!我最终采用了非常相似的方法,但没有安装 s3fs-fuse。使用 kubernetes 机密配置带有 ubuntu 和一些应用程序的预先存在的 docker 映像,并使用 aws s3 sync 命令运行 kubernetes 作业。非常感谢,Crou。
猜你喜欢
  • 2015-01-21
  • 2016-11-16
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多