文档首页 > > 用户指南> 存储管理> 文件存储卷>

使用kubectl对接已有文件存储

使用kubectl对接已有文件存储

分享
更新时间:2021/04/01 GMT+08:00

操作场景

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

操作步骤

  1. 登录SFS控制台,创建一个文件存储,记录文件存储的ID、共享路径和容量。
  2. 请参见通过kubectl或web-terminal插件操作CCE集群配置kubectl命令。
  3. 新建两个yaml文件,用于创建PersistentVolume(PV)、PersistentVolumeClaim(PVC)。假设文件名分别为pv-sfs-example.yamlpvc-sfs-example.yaml

    touch pv-sfs-example.yaml pvc-sfs-example.yaml

    K8S集群版本(K8S version)

    说明

    yaml示例

    1.15+

    1.15及以上版本的集群

    请参见1.15+ yaml文件配置示例

    1.11 ≤ K8S version < 1.13

    1.11以上及1.13版本集群

    请参见1.11~1.13 yaml文件配置示例

    K8S version = 1.9

    1.9版本集群

    请参见1.9 yaml文件配置示例

    1.15+(1.15及以上版本的集群)

    • vi pv-sfs-example.yaml
      PV yaml文件配置示例:
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-sfs-example
        annotations:
          pv.kubernetes.io/provisioned-by: everest-csi-provisioner
      spec:
        accessModes:
        - ReadWriteMany
        capacity:
          storage: 10Gi
        claimRef:
          apiVersion: v1
          kind: PersistentVolumeClaim
          name: pvc-sfs-example
          namespace: default
        csi:
          driver: nas.csi.everest.io
          fsType: nfs
          volumeAttributes:
            everest.io/share-export-location: sfs-nas01.cn-north-4.myhuaweicloud.com:/share-436304e8
            storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
          volumeHandle: 682f00bb-ace0-41d8-9b3e-913c9aa6b695
        persistentVolumeReclaimPolicy: Delete
        storageClassName: csi-nas
      表1 关键参数说明

      参数

      描述

      driver

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

      everest.io/share-export-location

      文件存储的共享路径。

      获取方法:在CCE控制台中,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中可以看到“挂载地址”列,即为文件存储的共享路径,如图1

      volumeHandle

      文件存储的ID。

      获取方法:在CCE控制台中,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中单击对应的弹性文件服务名称,在详情页中复制“ID”后的内容即可。

      storage

      文件存储的大小。

      storageClassName

      k8s storage class名称;需配置为"csi-nas"。

      spec.claimRef.apiVersion

      固定值"v1"。

      spec.claimRef.kind

      固定值"PersistentVolumeClaim"。

      spec.claimRef.name

      pvc名称;与下一步创建的pvc的name一致。

      spec.claimRef.namespace

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

    • vi pvc-sfs-example.yaml
      PVC yaml文件配置示例:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner
        name: pvc-sfs-example
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 10Gi
        storageClassName: csi-nas
        volumeName: pv-sfs-example
      表2 关键参数说明

      参数

      描述

      storageClassName

      需配置为"csi-nas"。必须和已有PV保持一致。

      storage

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

      volumeName

      PV的名称。

    图1 弹性文件存储-共享路径

    文件存储所在VPC必须与工作负载规划部署的ECS虚拟机的VPC保持一致。

  4. 创建PV。

    kubectl create -f pv-sfs-example.yaml

  5. 创建PVC。

    kubectl create -f pvc-sfs-example.yaml

历史版本示例

1.11 ≤ K8S version ≤ 1.13(1.11以上及1.13版本集群)

  • PV yaml文件配置示例:
    apiVersion: v1 
    kind: PersistentVolume 
    metadata: 
      name: pv-sfs-example 
      annotations:
        pv.kubernetes.io/provisioned-by: flexvolume-huawei.com/fuxinfs
    spec: 
      accessModes: 
      - ReadWriteMany 
      capacity: 
        storage: 10Gi 
      claimRef:
        apiVersion: v1
        kind: PersistentVolumeClaim
        name: pvc-sfs-example
        namespace: default
      flexVolume: 
        driver: huawei.com/fuxinfs 
        fsType: nfs 
        options: 
          deviceMountPath: sfs-nas1.southchina.huaweicloud.com:/share-73bdfafd
          fsType: nfs 
          volumeID: f6976f9e-2493-419b-97ca-d7816008d91c 
      persistentVolumeReclaimPolicy: Delete 
      storageClassName: nfs-rw
    表3 关键参数说明

    参数

    描述

    driver

    挂载依赖的存储驱动,文件存储配置为“huawei.com/fuxinfs”。

    deviceMountPath

    文件存储的共享路径。

    获取方法:在CCE控制台中,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中可以看到“挂载地址”列,即为文件存储的共享路径,如图1

    volumeID

    文件存储的ID。

    获取方法:在CCE控制台中,单击左侧栏目树中的“资源管理-存储管理”,在“文件存储卷”页签下单击PVC的名称,在PVC详情页中复制“PVC UID”后的内容即可。

    storage

    文件存储的大小。

    storageClassName

    文件存储支持的读写方式,当前支持nfs-rw、nfs-ro。

    spec.claimRef.apiVersion

    固定值"v1"。

    spec.claimRef.kind

    固定值"PersistentVolumeClaim"。

    spec.claimRef.name

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

    spec.claimRef.namespace

    pvc的namespace;是下一步创建的pvc的namespace一致。

  • PVC yaml文件配置示例:
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      annotations:
        volume.beta.kubernetes.io/storage-class: nfs-rw
        volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxinfs
      name: pvc-sfs-example
      namespace: default
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      volumeName: pv-sfs-example
    表4 关键参数说明

    参数

    描述

    volume.beta.kubernetes.io/storage-class

    文件存储支持的读写方式,支持nfs-rw 、nfs-ro。必须和已有PV保持一致。

    volume.beta.kubernetes.io/storage-provisioner

    必须使用flexvolume-huawei.com/fuxinfs。

    storage

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

    volumeName

    PV的名称。

K8S version = 1.9(1.9版本集群)

  • PV yaml文件配置示例:
    apiVersion: v1 
    kind: PersistentVolume 
    metadata: 
      name: pv-sfs-example 
      namespace: default 
    spec: 
      accessModes: 
      - ReadWriteMany 
      capacity: 
        storage: 10Gi 
      flexVolume: 
        driver: huawei.com/fuxinfs 
        fsType: nfs 
        options: 
          deviceMountPath: sfs-nas1.southchina.huaweicloud.com:/share-73bdfafd
          fsType: nfs 
          kubernetes.io/namespace: default 
          volumeID: f6976f9e-2493-419b-97ca-d7816008d91c 
      persistentVolumeReclaimPolicy: Delete 
      storageClassName: nfs-rw
    表5 关键参数说明

    参数

    描述

    driver

    挂载依赖的存储驱动,文件存储配置为“huawei.com/fuxinfs”。

    deviceMountPath

    文件存储的共享路径。

    获取方法:在CCE控制台中,单击顶部的“服务列表 > 存储 > 弹性文件服务”,在弹性文件服务列表中可以看到“挂载地址”列,即为文件存储的共享路径,如图1

    volumeID

    文件存储的ID。

    获取方法:在CCE控制台中,单击左侧栏目树中的“资源管理-存储管理”,在“文件存储卷”页签下单击PVC的名称,在PVC详情页中复制“PVC UID”后的内容即可。

    storage

    文件存储的大小。

    storageClassName

    文件存储支持的读写方式,当前支持nfs-rw、nfs-ro。

  • PVC yaml文件配置示例:
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      annotations:
        volume.beta.kubernetes.io/storage-class: nfs-rw
        volume.beta.kubernetes.io/storage-provisioner: flexvolume-huawei.com/fuxinfs
      name: pvc-sfs-example
      namespace: default
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      volumeName: pv-sfs-example
      volumeNamespace: default
    表6 关键参数说明

    参数

    描述

    volume.beta.kubernetes.io/storage-class

    文件存储支持的读写方式,支持nfs-rw 、nfs-ro。必须和已有PV保持一致。

    volume.beta.kubernetes.io/storage-provisioner

    必须使用flexvolume-huawei.com/fuxinfs。

    storage

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

    volumeName

    PV的名称。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问