搜索本产品文档关键词
使用数据湖存储加速工具RapidFS
所有文档
menu
没有找到结果,请重新输入

容器引擎 CCE

使用数据湖存储加速工具RapidFS

容器引擎CCE支持通过创建PV/PVC,并为工作负载挂载数据卷方式使用百度智能云数据湖存储加速工具RapidFS。本文将介绍如何在集群中动态和静态挂载数据湖存储加速工具RapidFS。

使用限制

  • 集群Kubernetes版本需大于或等于1.18。
  • RapidFS实例需要和集群在同一VPC内。

前提条件

  • 在数据湖存储加速工具控制台创建RapidFS实例,具体操作请参见新建缓存实例
  • 在数据湖存储加速工具控制台新增导入数据源,具体操作请参见导入数据源
  • 在CCE控制台Helm模板 > 百度智能云模板中使用”cce-csi-rapidfs-plugin“模板在目标集群中安装RapidFS组件。

操作步骤

动态挂载RapidFS

1. 创建存储类StorageClass

集群管理员可使用StorageClass为集群定义不同的存储类型。您可通过StorageClass配合PVC动态创建需要的存储资源。

本文介绍通过Kubectl方式创建RapidFS类型的StorageClass,自定义RapidFS存储使用所需的模板。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: rapidfs-sc
provisioner: csi-rapidfsplugin
parameters:
  clusterAddress:  #必填,目标数据源的挂载地址,数据源关联的RapidFS实例必须和集群在同一个VPC下

注意:

  • 挂载地址对应的数据源关联的权限组需要为集群中的Pod配置访问的权限(只读或读写权限),否则容器无法进行读写操作,可以直接设置CCE集群的VPC网段或关联默认权限组。

为Pod挂载RapidFS类型PV时默认会通过创建fuse pod进行挂载,支持自定义Fuse Pod相关配置满足业务灵活使用;

如无特殊需求,建议以下参数使用默认值即可。如果配置的 CPU 或 Memory 过小,可能影响访问 rapidfs 存储的性能或可用性。

parameters:
  memRequest: 4Gi #可选,指定fuse pod内存的请求值,默认为4Gi
  memLimit: 64Gi #可选,指定fuse pod内存的上限值,默认为64Gi
  cpuRequest: 4000m #可选,指定fuse pod cpu的请求值,默认为4000m
  cpuLimit: 160000m #可选,指定fuse pod cpu的请求值,默认为160000
  mountOptions: ""  #可选,fuse pod启动参数,多个使用英文逗号分隔,EnableNuma=1时候挂载进程绕开和绑定本机ip网卡相同的numa节点(仅支持设置为0或1,0表示不绑定),支持添加参数"EnableNuma=1,NumaNode=x"指定绑定的numa节点,x为需要绑定的服务器numa节点
  mountEnv: ""    #可选,fuse pod环境变量配置,默认为空,多个使用英文逗号分隔

说明:

  • Fuse Pod:用于将数据源挂载到节点的本地路径上,并且用户的容器通过Fuse Pod的访问数据源。
  • 上面为Fuse Pod的配置参数,选填,若不设置直接使用默认值。

2. 创建持久卷声明PVC

storageClassName需要指定为上述部署storageClass时填写的storageClass名称。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: csi-pvc-rapidfs
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: rapidfs-sc # 需要指定为上述部署storageClass时填写的名称
  resources:
    requests:
      storage: 50Gi # 用户指定PVC存储空间(说明:RapidFS不支持限制存储容量,容器实际可访问的为数据源绑定的BOS存储桶目录。)

3. 检查PVC状态为Bound

$ kubectl get pvc csi-pvc-rapidfs
NAME              STATUS    VOLUME                 CAPACITY   ACCESS MODES   STORAGECLASS   AGE
csi-pvc-rapidfs       Bound     pvc-1ab36e4d1d2711e9   50Gi       RWX            rapidfs-sc         4s

4. 在Pod中挂载PVC

Pod和PVC需要在同一个namespace下。

apiVersion: v1
kind: Pod
metadata:
  name: test-pvc-pod
  namespace: default  # Pod和PVC在同一个namespace下
  labels:
    app: test-pvc-pod
spec:
  containers:
  - name: test-pvc-pod
    image: nginx
    volumeMounts:
      - name: rapidfs-pvc
        mountPath: "/rapidfs-volume" 
  volumes:
    - name: rapidfs-pvc
      persistentVolumeClaim:
        claimName: csi-pvc-rapidfs

静态挂载RapidFS

1. 创建持久卷PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: static-pv-rapidfs
spec:
  accessModes:
  - ReadWriteMany
  storageClassName: # storageClassName在静态PV为空,无需填写
  capacity:
    storage: 100Gi
  csi:
    driver: csi-rapidfsplugin
    volumeHandle: 
    volumeAttributes:
    clusterAddress:   #必填,目标数据源的挂载地址,数据源关联的RapidFS实例必须和集群在同一个VPC下

注意:

  • 挂载地址对应的数据源关联的权限组需要为集群中的Pod配置访问的权限(只读或读写权限),否则容器无法进行读写操作,可以直接设置CCE集群的VPC网段或关联默认权限组。

为Pod挂载RapidFS类型PV时默认会通过创建fuse pod进行挂载,支持自定义Fuse Pod相关配置满足业务灵活使用;

如无特殊需求,建议以下参数使用默认值即可。如果配置的 CPU 或 Memory 过小,可能影响访问 rapidfs 存储的性能或可用性。

parameters:
  memRequest: 4Gi #可选,指定fuse pod内存的请求值,默认为4Gi
  memLimit: 64Gi #可选,指定fuse pod内存的上限值,默认为64Gi   
  cpuRequest: 4000m #可选,指定fuse pod cpu的请求值,默认为4000m 
  cpuLimit: 160000m #可选,指定fuse pod cpu的请求值,默认为160000m 
  mountOptions: ""  #可选,fuse pod启动参数,多个使用英文逗号分隔,EnableNuma=1时候挂载进程绕开和绑定本机ip网卡相同的numa节点(仅支持设置为0或1,0表示不绑定),支持添加参数"EnableNuma=1,NumaNode=x"指定绑定的numa节点,x为需要绑定的服务器numa节点
  mountEnv: ""    #可选,fuse pod环境变量配置,默认为空,多个使用英文逗号分隔

说明:

  • Fuse Pod:用于将数据源挂载到节点的本地路径上,并且用户的容器通过Fuse Pod的访问数据源。
  • 上面为Fuse Pod的配置参数,选填,若不设置直接使用默认值。

2. 创建持久卷声明PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: static-pvc-rapidfs # 指定PVC名称
spec:
  volumeName: static-pv-rapidfs # 指定PV的名称,与上述PV保持一致
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 100Gi # 用户指定PVC存储空间(说明:RapidFS不支持限制存储容量,容器实际可访问的为数据源绑定的BOS存储桶目录。)

2. 检查PVC状态为Bound,并且与对应的PV绑定

$ kubectl get pvc static-pvc-rapidfs
NAME             STATUS   VOLUME          CAPACITY   ACCESS MODES   STORAGECLASS    AGE
static-pvc-rapidfs   Bound    static-pv-rapidfs   100Gi      RWX            rapidfs-static-sc   10s

3. 在Pod中挂载PVC

Pod和PVC需要在同一个namespace下。

apiVersion: v1
kind: Pod
metadata:
  name: test-pvc-pod
  namespace: default  # Pod和PVC在同一个namespace下
  labels:
    app: test-pvc-pod
spec:
  containers:
  - name: test-pvc-pod
    image: nginx
    volumeMounts:
      - name: rapidfs-pvc
        mountPath: "/rapidfs-volume"
  volumes:
    - name: rapidfs-pvc
      persistentVolumeClaim:
        claimName: csi-pvc-rapidfs
上一篇
使用并行文件存储PFS L2
下一篇
监控日志