更新时间:2022-05-19 GMT+08:00
分享

使用kubectl对接已有极速文件存储卷

操作场景

CCE支持使用已有的极速文件存储来创建PersistentVolume,创建成功后,通过创建相应的PersistentVolumeClaim来绑定当前的PersistentVolume使用。

前提条件

您已经创建好一个CCE集群,并且在该集群中安装CSI插件(Everest)。

约束与限制

  • 如下配置示例适用于Kubernetes 1.15及以上版本的集群。
  • 如需配置挂载参数,Everest插件版本要求1.2.8及以上版本。
  • 仅支持与集群同一个VPC、与节点同一个子网的SFS Turbo。
  • SFS Turbo所在安全组需开放入方向端口(111、445、2049、2051、20048)。
  • 支持多个PV挂载同一个SFS Turbo,但有如下限制。
    • 多个不同的PVC/PV使用同一个底层SFS Turbo卷时,且被同一Pod使用会出现问题,需要避免这么使用。
    • PV中persistentVolumeReclaimPolicy参数需设置为Retain,否则可能存在一个PV删除时,级联删除底层卷,其他关联这个底层卷的PV会由于底层存储不在了,使用出现异常。
    • 重复用底层存储时,建议在应用层做好多读多写的隔离保护,防止产生的数据覆盖和丢失。

操作步骤

  1. 登录SFS控制台,创建一个文件存储,记录文件存储的ID、共享路径和容量。
  2. 请参见通过kubectl连接集群,使用kubectl连接集群。
  3. 新建两个yaml文件,用于创建PersistentVolume(PV)、PersistentVolumeClaim(PVC)。假设文件名分别为pv-sfsturbo-example.yamlpvc-sfsturbo-example.yaml

    touch pv-sfsturbo-example.yaml pvc-sfsturbo-example.yaml

    • vi pv-sfsturbo-example.yaml
      PV yaml文件配置示例如下:
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-sfsturbo-example
        annotations:
          pv.kubernetes.io/provisioned-by: everest-csi-provisioner
      spec:
        mountOptions:
        - hard
        - timeo=600
        - nolock
        accessModes:
        - ReadWriteMany
        capacity:
          storage: 10Gi
        claimRef:
          apiVersion: v1
          kind: PersistentVolumeClaim
          name: pvc-sfsturbo-example
          namespace: default
        csi:
          driver: sfsturbo.csi.everest.io
          fsType: nfs
          volumeAttributes:
            everest.io/share-export-location: 192.168.0.169:/
            storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
          volumeHandle: 8962a2a2-a583-4b7f-bb74-fe76712d8414
        persistentVolumeReclaimPolicy: Delete
        storageClassName: csi-sfsturbo
      表1 关键参数说明

      参数

      描述

      driver

      挂载依赖的存储驱动,极速文件存储配置为“sfsturbo.csi.everest.io”。

      everest.io/share-export-location

      极速文件存储的共享路径。

      volumeHandle

      极速文件存储的ID。

      获取方法:在弹性文件服务控制台,单击SFS Turbo存储实例,在基本信息中可查看到ID。

      storage

      文件存储的大小。

      storageClassName

      指定k8s storage class名称;极速文件存储卷需配置为"csi-sfsturbo”。

      spec.mountOptions

      挂载参数。

      不设置时默认配置为如下配置,具体说明请参见文件存储挂载参数

      如需配置挂载参数,Everest插件版本要求1.2.8及以上版本。

      mountOptions:
      - vers=3
      - timeo=600
      - nolock
      - hard

      spec.claimRef.apiVersion

      固定值"v1"。

      spec.claimRef.kind

      固定值"PersistentVolumeClaim"。

      spec.claimRef.name

      与下一步创建的pvc的name一致。

      spec.claimRef.namespace

      与下一步创建的pvc的namespace一致。

      spec.persistentVolumeReclaimPolicy

      PV的回收策略。

      • Delete:删除pvc时,pv资源与云硬盘均被删除;
      • Retain:删除pvc时,pv资源与云硬盘资源均不会被删除,且pv资源状态为“Released”,不能直接再次pvc绑定使用,建议手动删除“Released”状态的pv。
    • vi pvc-sfsturbo-example.yaml
      PVC yaml文件配置示例如下:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner
        name: pvc-sfsturbo-example
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 10Gi
        storageClassName: csi-sfsturbo
        volumeName: pv-sfsturbo-example
      表2 关键参数说明

      参数

      描述

      storageClassName

      指定k8s storage class名称;需配置为"csi-sfsturbo”。

      storage

      存储容量,单位Gi,必须和已有pv的storage大小保持一致。

      volumeName

      PV的名称。

  4. 创建PV。

    kubectl create -f pv-sfsturbo-example.yaml

  5. 创建PVC。

    kubectl create -f pvc-sfsturbo-example.yaml

分享:

    相关文档

    相关产品

close