如何在Kubernetes容器/吊舱上安装S3存储桶?

时间:2018-08-03 12:46:44

标签: apache-spark amazon-s3 kubernetes fuse s3fs

我正在尝试在Amazon EKS集群上运行我的Spark作业。我的Spark作业需要在每个数据节点/工作人员/执行者处有一些静态数据(参考数据),并且该参考数据可在S3上获得。

有人可以帮助我找到一个干净且性能优异的解决方案,以将S3存储桶安装在吊舱上吗?

S3 API是一个选项,我正在将其用于输入记录和输出结果。但是“参考数据”是静态数据,因此我不想在我的spark作业的每次运行/执行中下载它。在第一次运行时,作业将下载数据,而即将进行的作业将检查数据是否在本地可用,而无需再次下载。

2 个答案:

答案 0 :(得分:3)

我们最近开放了一个项目,该项目旨在为您自动化这些步骤:https://github.com/IBM/dataset-lifecycle-framework

基本上,您可以创建一个数据集:

apiVersion: com.ie.ibm.hpsys/v1alpha1
kind: Dataset
metadata:
  name: example-dataset
spec:
  local:
    type: "COS"
    accessKeyID: "iQkv3FABR0eywcEeyJAQ"
    secretAccessKey: "MIK3FPER+YQgb2ug26osxP/c8htr/05TVNJYuwmy"
    endpoint: "http://192.168.39.245:31772"
    bucket: "my-bucket-d4078283-dc35-4f12-a1a3-6f32571b0d62"
    region: "" #it can be empty

然后您将获得一个可以安装在吊舱中的pvc

答案 1 :(得分:0)

通常,您只是不这样做。相反,您应该直接与S3 API交互以检索/存储所需的内容(可能通过aws cli等工具)。

在AWS中运行时,可以通过以下方式配置IAM:节点可以访问“基础结构”级别上授权的特定数据,或者可以通过secrets / confogmaps / env等提供S3访问令牌。

S3不是文件系统,所以不要指望它像一个文件系统(即使有FUSE客户端可以模拟FS来满足您的需求,这也不是正确的解决方案)

相关问题