如果选择AWS S3作为Alluxio的底层存储系统,Alluxio需要进行额外配置,以使得Alluxio能够正常访问挂载的S3存储系统。
本文档展示了如何在Fluid中以声明式的方式完成Alluxio所需的特殊配置。更多信息请参考在Amazon AWS S3上配置Alluxio
- Fluid
- 配置完成的S3 bucket及有权限访问该bucket的AWS证书
请参考Fluid安装文档 完成安装
为了保证安全,Fluid建议使用Secret来配置敏感信息,如aws.accessKeyId
和aws.secretKey
。更多关于Secret在fluid中的使用,请参考
使用Secret配置Dataset敏感信息
创建Dataset资源对象
$ cat << EOF > dataset.yaml
apiVersion: data.fluid.io/v1alpha1
kind: Dataset
metadata:
name: my-s3
spec:
mounts:
- mountPoint: s3://<bucket-name>/<path-to-data>/
name: s3
options:
alluxio.underfs.s3.region: <s3-bucket-region>
alluxio.underfs.s3.endpoint: <s3-endpoint>
encryptOptions:
- name: aws.accessKeyId
valueFrom:
secretKeyRef:
name: mysecret
key: aws.accessKeyId
- name: aws.secretKey
valueFrom:
secretKeyRef:
name: mysecret
key: aws.secretKey
EOF
注意: 不同的云厂商对象存储,region的配置要替换为alluxio.underfs.s3.endpoint.region=<S3_ENDPOINT_REGION>
,具体详细信息,参考在Amazon AWS S3上配置Alluxio
$ kubectl create -f dataset.yaml
创建Secret
在要创建的Secret中,需要写明在上面创建Dataset时需要配置的敏感信息。
$ cat<<EOF >mysecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
stringData:
aws.accessKeyId: <AWS_ACESS_KEY_ID>
aws.secretKey: <AWS_SECRET_KEY>
EOF
创建AlluxioRuntime资源对象
$ cat << EOF > runtime.yaml
apiVersion: data.fluid.io/v1alpha1
kind: AlluxioRuntime
metadata:
name: my-s3
spec:
...
EOF
$ kubectl create -f runtime.yaml
dataset.yaml
中指定的bucket将被挂载到Alluxio中/s3
目录下。