通过CNFS管理NAS文件系统

容器网络文件系统CNFS(Container Network File System)将阿里云的文件存储抽象为一个K8s对象(CRD)进行独立管理,包括创建、删除、描述、挂载、监控及扩容等运维操作,为了提升NAS文件系统的性能,您可以通过CNFS管理NAS文件系统,以提升NAS文件系统的性能和QoS控制,实现对文件系统层的独立管理。本文介绍如何使用CNFS托管NAS文件系统及CNFS在工作负载中的应用。

前提条件

  • 已开通文件存储NAS服务。

    首次登录文件存储NAS产品详情页时,按照页面引导开通服务。

  • 已创建ACK集群Pro版,且集群为1.20以上版本(通过kubectl使用CNFS时,支持1.20版本集群)。具体操作,请参见创建ACK托管集群

  • 存储相关组件csi-plugin、csi-provisioner、storage-operator已升级至最新版本。关于升级组件的操作,请参见管理组件。使用CNFS功能时,相关组件版本要求如下:

    • csi-plugin和csi-provisioner组件为v1.20.5-ff6490f-aliyun及以上版本。

    • storage-operator组件为v1.18.8.56-2aa33ba-aliyun及以上版本;通过控制台使用CNFS时,该组件需为v1.26.2-1de13b6-aliyun及以上版本。

  • 如需通过kubectl使用CNFS,请先通过kubectl工具连接集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群

  • 支持容量型和性能型的NAS文件系统,暂不支持高级型和极速型NAS文件系统。若您需要对NAS文件系统进行KMS加密,请先开通KMS服务。具体操作,请参见开通密钥管理服务

功能介绍

您可以通过以下三种方式使用CNFS托管NAS文件系统:

  • 方式一:使用CNFS创建默认NAS文件系统

    创建一个默认的CNFS文件系统,并使用NAS动态存储卷自动挂载默认创建的NAS文件系统,同时将NAS动态存储卷绑定到工作负载Deployment和StatefulSet中。

  • 方式二:使用CNFS创建自定义NAS文件系统

    使用CNFS创建自定义的NAS文件系统,并使用NAS静态存储卷或NAS动态存储卷挂载自定义创建的NAS文件系统,然后将创建的NAS静态存储卷或NAS动态存储卷绑定到工作负载Deployment中。

  • 方式三:使用已有的NAS文件系统创建CNFS

    使用CNFS配置已有的NAS文件系统,并使用NAS静态存储卷或NAS动态存储卷挂载已有的NAS文件系统,然后将创建的NAS静态存储卷或NAS动态存储卷绑定到工作负载Deployment中。

方式一:使用CNFS创建默认NAS文件系统

重要

根据当前集群所在的VPC创建容量型NAS或性能型NAS,不支持极速型NAS。若当前地域不支持容量型NAS,则创建性能型NAS,默认对文件不进行加密处理。

通过kubectl命令行创建

使用以下内容,创建一个默认的CNFS文件系统,并使用NAS动态存储卷自动挂载到默认创建的NAS文件系统中,同时将NAS动态存储卷绑定到工作负载Deployment和StatefulSet中。

展开查看创建CNFS、StorageClass和工作负载的YAML文件

# 创建CNFS、StorageClass和Deployment、StatefulSet对象。
cat << EOF | kubectl apply -f -
apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  name: cnfs-nas-filesystem
spec:
  description: "cnfs"
  type: nas
  reclaimPolicy: Retain # 只支持Retain策略,删除CNFS时并不会删除NAS文件系统。
  parameters:
    encryptType: SSE-KMS # 可选参数,不指定表示对文件不使用NAS托管加密,指定SSE-KMS表示开启此功能。
    enableTrashCan: "true" # 可选参数,不指定表示不打开回收站功能,指定true表示开启此功能。
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alibabacloud-cnfs-nas
mountOptions:
  - nolock,tcp,noresvport
  - vers=3
parameters:
  volumeAs: subpath
  containerNetworkFileSystem: cnfs-nas-filesystem
  path: "/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain
allowVolumeExpansion: true # 可选参数,指定为true表示允许对NAS文件系统进行扩容。
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      storage: 70Gi # 如果打开目录限额功能,则storage字段会生效,动态创建目录写入数据量最大为70 GiB。
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        volumeMounts:
        - mountPath: "/data"
          name: cnfs-nas-pvc
      volumes:
      - name: cnfs-nas-pvc
        persistentVolumeClaim:
          claimName: cnfs-nas-pvc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cnfs-nas-sts
  labels:
    app: nginx
spec:
  serviceName: "nginx"
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        volumeMounts:
        - mountPath: "/data"
          name: www
  volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "alibabacloud-cnfs-nas"
      resources:
        requests:
          storage: 50Gi # 如果打开目录限额功能,则storage字段会生效,动态创建目录写入数据量最大为50 GiB。
EOF

参数

说明

description

当前文件系统的简单描述。

type

需要创建的存储卷类型。

reclaimPolicy

回收策略,目前仅支持Retain策略,删除CNFS时并不会删除NAS文件系统。

parameters.encryptType

可选,加密方式。

  • None:不加密。

  • SSE-KMS:使用NAS服务端KMS加密。

parameters.enableTrashCan

是否开启回收站功能。

  • true:开启。

  • false:不开启。

通过控制台创建

  1. 创建容器网络文件系统CNFS。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 容器网络文件系统CNFS

    3. 容器网络文件系统CNFS页面,单击创建容器网络文件系统

    4. 创建容器网络文件系统面板,配置相关参数后,单击确定

      配置项

      说明

      示例

      容器网络文件系统CNFS名称

      CNFS名称。

      cnfs-nas-filesystem

      选择文件系统类型

      选择要托管的文件系统类型,支持NAS和OSS。

      NAS

      必选项

      支持创建默认NAS或选择已有NAS。选择已有NAS时,您可以选择已有的NAS挂载点或创建自定义的NAS文件系统。

      选择文件系统类型NAS时,才会显示该必选项

      创建默认NAS

      容器网络文件系统CNFS描述

      CNFS的相关描述信息。

      通过CNFS创建默认NAS文件系统

      全链路加速

      是否使用弹性加速特性进行挂载,默认关闭。关于弹性加速特性的更多信息,请参见开启CNFS NAS计算端分布式缓存

      关闭

    5. 在容器网络文件系统列表页面,单击目标文件系统,查看容器网络文件系统详情,然后单击NAS ID进入NAS文件系统详情页面。

    6. 文件系统详情页面,单击挂载使用,在挂载点列表的挂载点地址列,将光标放置在image.png图标上,即可查看目标挂载点的挂载点地址。

  2. 创建动态存储类StorageClass。

    1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 存储类

    2. 存储类页面,单击右上角的创建

    3. 创建面板,完成StorageClass的相关配置后,单击创建

      配置项

      说明

      示例

      名称

      StorageClass的名称。

      名称必须以小写字母开头,只能包含小写字母、数字、小数点(.)和中划线(-)。

      alibabacloud-cnfs-nas

      存储卷类型

      可选择云盘NAS

      NAS

      选择挂载点

      步骤1通过CNFS创建的默认NAS文件系统的挂载点地址。关于如何查看挂载点地址,请参见查看挂载点地址

      64888******-e*****.cn-qingdao.nas.aliyuncs.com

      回收策略

      回收策略,目前仅支持Retain策略,删除CNFS时并不会删除NAS文件系统。

      Retain

      挂载选项

      挂载NAS的可选参数,包括NFS协议版本等参数。

      NFS协议版本号推荐使用v3,且极速类型NAS仅支持v3。关于NFS协议的更多信息,请参见NFS协议

      nolock,tcp,noresvport

      vers=3

      挂载路径

      NAS文件系统中的挂载路径。

      /

  3. 创建PVC。

    1. 在集群管理页左侧导航栏,选择存储 > 存储声明

    2. 存储声明页面,单击右上角的创建

    3. 创建存储声明面板,完成相关配置后,单击创建

      参数

      说明

      示例

      存储声明类型

      支持云盘、NAS、OSS三种云存储类型。 本文中选择NAS

      NAS

      名称

      创建的存储声明名称在集群内必须唯一。

      cnfs-nas-pvc

      分配模式

      存储卷使用方式。

      使用存储类动态创建

      已有存储卷类

      单击选择存储类,在目标存储类右侧操作列单击选择,选择存储类。

      alibabacloud-cnfs-nas

      总量

      所创建存储卷的容量。

      说明

      所创建存储卷声明的容量不能超过待挂载的存储卷容量。

      70 Gi

      访问模式

      默认为ReadWriteMany,也可选择ReadWriteOnceReadOnlyMany

      ReadWriteMany

  4. 在目标应用中挂载PVC。

    将通过CNFS创建的NAS文件系统挂载到容器中的/data路径下。

    image

方式二:使用CNFS创建自定义NAS文件系统

通过kubectl命令行创建

使用CNFS创建自定义的NAS文件系统,并使用NAS静态存储卷或NAS动态存储卷挂载自定义创建的NAS文件系统,然后将创建的NAS静态存储卷或NAS动态存储卷绑定到工作负载Deployment中。

  1. 创建自定义的NAS文件系统。

    1. 执行以下命令创建自定义的NAS文件系统。

      cat <<EOF | kubectl apply -f -
      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        name: cnfs-nas-filesystem
      spec:
        description: "cnfs"
        type: nas
        reclaimPolicy: Retain
        parameters:
          filesystemType: standard
          storageType: Capacity
          protocolType: NFS
          encryptType: SSE-KMS
          enableTrashCan: "true"
          trashCanReservedDays: "5"
          vSwitchId: vsw-2ze9l3ppwzg6bl02j****
      EOF

      参数

      说明

      description

      当前文件系统的简单描述。

      type

      需要创建的存储卷类型。

      reclaimPolicy

      回收策略,目前仅支持Retain策略,删除CNFS时并不会删除NAS文件系统。

      parameters.filesystemType

      文件系统类型。默认为通用型standard

      parameters.storageType

      存储类型,当filesystemTypestandard时,可选择性能型Performance或容量型Capacity NAS文件系统。

      parameters.protocolType

      文件传输协议类型为NFS,目前仅支持NFS V3协议。

      parameters.encryptType

      可选,加密方式。

      • None:不加密。

      • SSE-KMS:使用NAS服务端KMS加密。

      parameters.enableTrashCan

      是否开启回收站功能。

      • true:开启。

      • false:不开启。

      parameters.trashCanReservedDays

      表示回收站文件保留的最长时间,默认为7天。示例中trashCanReservedDays: 5,表示回收站的文件最长保留5天。

      parameters.vSwitchId

      创建出的NAS文件系统需要使用的交换机ID。

    2. 执行以下命令查看创建的NAS文件系统。

      kubectl get cnfs

      预期输出:

      NAME                  AGE
      cnfs-nas-filesystem   6d
    3. 执行以下命令查看NAS文件系统的详细信息。

      kubectl get cnfs/cnfs-nas-filesystem -o yaml

      预期输出:

      展开查看预期输出

      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {"apiVersion":"storage.alibabacloud.com/v1beta1","kind":"ContainerNetworkFileSystem","metadata":{"annotations":{},"name":"cnfs-nas-filesystem"},"spec":{"description":"filesystem4","parameters":{"filesystemId":"17f7e4****","server":"17f7e4****-h****.cn-beijing.nas.aliyuncs.com"},"reclaimPolicy":"Retain","type":"nas"}}
        creationTimestamp: "2021-05-14T08:20:09Z"
        finalizers:
        - protection.alibabacloud.com/cnfs
        generation: 6
        name: cnfs-nas-filesystem
        resourceVersion: "122342382"
        uid: a9e9650c-68b2-405b-8274-0f5b6063****
      spec:
        description: "cnfs"
        type: nas
        reclaimPolicy: Retain
        parameters:
          filesystemType: standard
          storageType: Capacity
          protocolType: NFS
          encryptType: SSE-KMS
          vSwitchId: vsw-XXX
          enableTrashCan: "true"
      status:
        conditions:
        - lastProbeTime: "2021-05-14 16:20:15"
          reason: The nas filesystem and mount target complete initialization.
          status: Ready
        fsAttributes:
          accessGroupName: DEFAULT_VPC_GROUP_NAME
          encryptType: SSE-KMS
          enableTrashCan: "true"
          filesystemId: 17f7e48ece
          filesystemType: standard
          protocolType: NFS
          regionId: cn-beijing
          server: 17f7e48ece-h****.cn-beijing.nas.aliyuncs.com
          storageType: Capacity
          vSwitchId: vsw-2ze9l3ppwzg6bl02j****
          vpcId: vpc-2ze9sgmehjvwv5x74****
          zoneId: cn-beijing-h
        status: Available

      参数

      说明

      status

      CNFS的当前状态,包括Pending(等待)、Creating(创建中)、Initialization(创建文件系统中)、Available(可用)、Unavailable(暂时不可用,可以恢复为可用状态)、Fatal(不可用,无法恢复)、Terminating(删除中)。

      conditions.lastProbeTime

      最后探活的时间。

      conditions.reason

      处于当前状态的原因。

      conditions.status

      当前状态是否可用,可用为Ready,不可用为NotReady。

      fsAttributes.accessGroupName

      挂载点所应用的权限组名称,目前仅支持DEFAULT_VPC_GROUP_NAME(专有网络默认权限组)。

      fsAttributes.encryptType

      可选,加密方式。

      • None:不加密。

      • SSE-KMS:使用NAS服务端KMS加密。

      fsAttributes.enableTrashCan

      是否开启回收站功能。

      • true:开启。

      • false:不开启。

      fsAttributes.filesystemId

      文件系统ID。

      fsAttributes.filesystemType

      文件系统类型。默认为通用型standard

      fsAttributes.protocolType

      文件传输协议类型。目前支持NFS协议。

      fsAttributes.regionId

      CNFS所在的地域。

      fsAttributes.server

      CNFS的挂载点Domain。

      fsAttributes.storageType

      存储类型,当filesystemTypestandard时,可选择性能型Performance或容量型Capacity NAS文件系统。

      fsAttributes.vSwitchId

      CNFS使用的vSwitch。

      fsAttributes.vpcId

      CNFS所在的VPC。

      fsAttributes.zoneId

      CNFS所在的可用区。

  2. 通过创建静态PV或动态存储类StorageClass来绑定NAS文件系统。

    • 创建静态PV。

      1. 执行以下内容创建引用NAS文件系统的PV对象。

        cat <<EOF | kubectl apply -f -
        apiVersion: v1
        kind: PersistentVolume
        metadata:
          name: cnfs-nas-pv
          labels:
            alicloud-pvname: cnfs-nas-pv
        spec:
          capacity:
            storage: 5Gi
          accessModes:
            - ReadWriteMany
          csi:
            driver: nasplugin.csi.alibabacloud.com
            volumeHandle: cnfs-nas-pv # 需要与PV的name保持一致。
            volumeAttributes:
              containerNetworkFileSystem: cnfs-nas-filesystem
              path: "/"
          mountOptions:
            - nolock,tcp,noresvport
            - vers=3
        EOF

        参数

        说明

        containerNetworkFileSystem

        指定需要使用的CNFS名称。

        path

        挂载存储卷在CNFS中使用的路径。

      2. 执行以下命令查看PV是否创建成功。

        kubectl get pv

        预期输出:

        NAME          CAPACITY   ACCESS MODES     RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
        cnfs-nas-pv   5Gi        RWX              Retain           Available                                   4s
    • 创建动态StorageClass。

      执行以下内容创建引用NAS文件系统的StorageClass对象。

      cat <<EOF | kubectl apply -f -
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: alibabacloud-nas-cnfs
      mountOptions:
        - nolock,tcp,noresvport
        - vers=3
      parameters:
        volumeAs: subpath
        containerNetworkFileSystem: nas-load-mount-target
        path: "/"
      provisioner: nasplugin.csi.alibabacloud.com
      reclaimPolicy: Retain
      allowVolumeExpansion: true
      EOF
      说明

      allowVolumeExpansion:取值为truefalse,表示是否开启Quota及扩容功能。

  3. 创建PVC。

    1. 执行以下内容创建引用NAS文件系统的PVC。

      cat <<EOF | kubectl apply -f -
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: cnfs-nas-pvc
      spec:
        accessModes:
          - ReadWriteMany
        storageClassName: alibabacloud-nas-cnfs
        resources:
          requests:
            storage: 70Gi
      EOF
  4. 创建应用。

    1. 执行以下内容创建引用PVC的应用。

      cat <<EOF | kubectl apply -f -
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: cnfs-nas-deployment
        labels:
          app: nginx
      spec:
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
              - name: nginx
                image: nginx:1.14.2
                ports:
                  - containerPort: 80
                volumeMounts:
                  - name: cnfs-nas-pvc
                    mountPath: "/data"
            volumes:
              - name: cnfs-nas-pvc
                persistentVolumeClaim:
                  claimName: cnfs-nas-pvc
      EOF
    2. 执行以下命令查看所创建应用的工作状态。

      kubectl get pod

      预期输出:

      NAME                             READY   STATUS    RESTARTS   AGE
      cnfs-nas-deployment-86959b****   1/1     Running   0          2s

      从预期输出可得,所创建的Deployment为Running状态,表示CNFS在该Deployment中使用成功。

通过控制台创建

  1. 创建容器网络文件系统CNFS。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 容器网络文件系统CNFS

    3. 容器网络文件系统CNFS页面,单击创建容器网络文件系统

    4. 创建容器网络文件系统面板,配置相关参数后,单击确定

      配置项

      说明

      示例

      容器网络文件系统CNFS名称

      CNFS名称。

      cnfs-nas-filesystem

      选择文件系统类型

      选择要托管的文件系统类型,支持NAS和OSS。

      NAS

      必选项

      支持创建默认NAS或选择已有NAS。选择已有NAS时,您可以选择已有的NAS挂载点或创建自定义的NAS文件系统。

      选择文件系统类型NAS时,才会显示该必选项

      选择已有NAS

      选择NAS

      选择已有的NAS挂载点或单击右侧创建NAS来创建自定义的NAS文件系统。

      必选项选择已有NAS时,才会显示该选项。

      单击右侧创建NAS,仅支持创建通用型NAS文件系统,相关操作,请参见通过控制台创建通用型NAS文件系统

      容器网络文件系统CNFS描述

      CNFS的相关描述信息。

      通过CNFS创建自定义NAS文件系统

      全链路加速

      是否使用弹性加速特性进行挂载,默认关闭。关于弹性加速特性的更多信息,请参见开启CNFS NAS计算端分布式缓存

      关闭

  2. 通过创建静态PV或动态存储类StorageClass来绑定NAS文件系统。

    • 创建静态PV。

      1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 存储卷

      2. 存储卷页面,单击右上角的创建

      3. 创建存储卷面板,配置相关参数后,单击确定

        配置项

        说明

        示例

        存储卷类型

        支持云盘、NAS、OSS三种云存储类型。本文中选择为NAS

        NAS

        名称

        创建的数据卷的名称。数据卷名在集群内必须唯一。

        cnfs-nas-pv

        总量

        所创建存储卷的容量。注意NAS文件系统本身不限制使用量。此处不是NAS文件系统的使用限额,只是所创建存储卷的容量声明。

        5 Gi

        访问模式

        支持ReadWriteManyReadWriteOnce。默认为ReadWriteMany

        ReadWriteMany

        是否使用CNFS

        使用CNFS功能。需要开启,开启后您需要进行以下操作:

        cnfs-nas-filesystem

        显示高级选项

        • 挂载路径:NAS文件系统中的挂载路径。以/为根目录,设定后数据卷将挂载到指定的子目录。

          • 如果NAS根目录下没有此子目录,会默认创建后再挂载。

          • 您可以不填此项,默认挂载到NAS根目录。

        • 回收策略:回收策略,CNFS仅支持Retain策略。

        • /

        • Retain

        标签

        为该存储卷添加标签。

        cnfs-nas-pv

    • 创建动态存储类StorageClass。

      1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 存储类

      2. 存储类页面,单击右上角的创建

      3. 创建面板,完成StorageClass的相关配置后,单击创建

        配置项

        说明

        示例

        名称

        StorageClass的名称。

        名称必须以小写字母开头,只能包含小写字母、数字、小数点(.)和中划线(-)。

        alibabacloud-cnfs-nas

        存储卷类型

        可选择云盘NAS

        NAS

        选择挂载点

        步骤1通过CNFS创建的默认NAS文件系统的挂载点地址。关于如何查看挂载点地址,请参见查看挂载点地址

        64888******-e*****.cn-qingdao.nas.aliyuncs.com

        回收策略

        回收策略,目前仅支持Retain策略,删除CNFS时并不会删除NAS文件系统。

        Retain

        挂载选项

        挂载NAS的可选参数,包括NFS协议版本等参数。

        NFS协议版本号推荐使用v3,且极速类型NAS仅支持v3。关于NFS协议的更多信息,请参见NFS协议

        nolock,tcp,noresvport

        vers=3

        挂载路径

        NAS文件系统中的挂载路径。

        /

  3. 创建PVC。

    1. 在集群管理页左侧导航栏,选择存储 > 存储声明

    2. 存储声明页面,单击右上角的创建

    3. 创建存储声明面板,完成相关配置后,单击创建

      参数

      说明

      示例

      存储声明类型

      支持云盘、NAS、OSS三种云存储类型。 本文中选择NAS

      NAS

      名称

      创建的存储声明名称在集群内必须唯一。

      cnfs-nas-pvc

      分配模式

      存储卷使用方式。

      使用存储类动态创建

      已有存储卷类

      单击选择存储类,在目标存储类右侧操作列单击选择,选择存储类。

      alibabacloud-cnfs-nas

      总量

      所创建存储卷的容量。

      说明

      所创建存储卷声明的容量不能超过待挂载的存储卷容量。

      70 Gi

      访问模式

      默认为ReadWriteMany,也可选择ReadWriteOnceReadOnlyMany

      ReadWriteMany

  4. 在目标应用中挂载PVC。

    将通过CNFS创建的NAS文件系统挂载到容器中的/data路径下。

    image

方式三:使用已有的NAS文件系统创建CNFS

通过kubectl命令行创建

使用CNFS配置已有的NAS文件系统,并使用NAS静态存储卷或NAS动态存储卷挂载已有的NAS文件系统,然后将创建的NAS静态存储卷或NAS动态存储卷绑定到工作负载Deployment中。

  1. 使用已有的NAS文件系统创建CNFS。

    1. 执行以下内容使用已有的NAS文件系统创建CNFS。

      # 当NAS文件系统存在时,加载已创建的NAS文件系统。
      cat <<EOF | kubectl apply -f -
      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        name: cnfs-nas-filesystem
      spec:
        description: "cnfs"
        type: nas
        reclaimPolicy: Retain
        parameters:
          server: 17f7e4****-h****.cn-beijing.nas.aliyuncs.com
      EOF

      参数

      说明

      description

      当前文件系统的简单描述。

      type

      需要创建的存储类型。

      reclaimPolicy

      回收策略,CNFS目前仅支持Retain策略,删除CNFS时并不会删除NAS文件系统。

      parameters.server

      NAS的挂载点URL地址。

    2. 执行以下命令查看NAS文件系统。

      kubectl get cnfs

      预期输出:

      NAME                  AGE
      cnfs-nas-filesystem   6d
    3. 执行以下命令查看NAS文件系统的详细信息。

      kubectl get cnfs/cnfs-nas-filesystem -o yaml

      预期输出:

      展开查看预期输出

      apiVersion: storage.alibabacloud.com/v1beta1
      kind: ContainerNetworkFileSystem
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {"apiVersion":"storage.alibabacloud.com/v1beta1","kind":"ContainerNetworkFileSystem","metadata":{"annotations":{},"name":"nas-load-mount-target"},"spec":{"description":"filesystem4","parameters":{"filesystemId":"17f7e4****","server":"17f7e48ece-h****.cn-beijing.nas.aliyuncs.com"},"reclaimPolicy":"Retain","type":"nas"}}
        creationTimestamp: "2021-05-14T08:20:09Z"
        finalizers:
        - protection.alibabacloud.com/cnfs
        generation: 6
        name: cnfs-nas-filesystem
        resourceVersion: "122342382"
        selfLink: /apis/storage.alibabacloud.com/v1beta1/containernetworkfilesystems/nas-load-mount-target
        uid: a9e9650c-68b2-405b-8274-0f5b6063****
      spec:
        description: cnfs
        parameters:
          server: 17f7e48ece-h****.cn-beijing.nas.aliyuncs.com
        reclaimPolicy: Retain
        type: nas
      status:
        conditions:
        - lastProbeTime: "2021-05-14 16:20:15"
          reason: The nas filesystem and mount target complete initialization.
          status: Ready
        fsAttributes:
          accessGroupName: DEFAULT_VPC_GROUP_NAME
          encryptType: None
          enableTrashCan: "true"
          filesystemId: 17f7e4****
          filesystemType: standard
          protocolType: NFS
          regionId: cn-beijing
          server: 17f7e48ece-h****.cn-beijing.nas.aliyuncs.com
          storageType: Capacity
          vSwitchId: vsw-2ze9l3ppwzg6bl02j****
          vpcId: vpc-2ze9sgmehjvwv5x74****
          zoneId: cn-beijing-h
        status: Available
  2. 在NAS存储卷中应用CNFS。具体操作,请参见方式二:使用CNFS创建自定义NAS文件系统中通过kubectl创建的步骤2步骤4

通过控制台创建

  1. 创建容器网络文件系统CNFS。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择存储 > 容器网络文件系统CNFS

    3. 容器网络文件系统CNFS页面,单击创建容器网络文件系统

    4. 创建容器网络文件系统面板,配置相关参数后,单击确定

      配置项

      说明

      示例

      容器网络文件系统CNFS名称

      CNFS名称。

      cnfs-nas-filesystem

      选择文件系统类型

      选择要托管的文件系统类型,支持NAS和OSS。

      NAS

      必选项

      支持创建默认NAS或选择已有NAS。选择已有NAS时,您可以选择已有的NAS挂载点或创建自定义的NAS文件系统。

      选择文件系统类型NAS时,才会显示该必选项

      选择已有NAS

      选择NAS

      选择已有的NAS挂载点或单击右侧创建NAS来创建自定义的NAS文件系统。

      必选项选择已有NAS时,才会显示该选项。

      选择已有的NAS挂载点,关于如何查看挂载点,请参见查看挂载点地址

      容器网络文件系统CNFS描述

      CNFS的相关描述信息。

      通过CNFS创建自定义NAS文件系统

      全链路加速

      是否使用弹性加速特性进行挂载,默认关闭。关于弹性加速特性的更多信息,请参见开启CNFS NAS计算端分布式缓存

      关闭

  2. 在NAS存储卷中应用CNFS。具体操作,请参见方式二:使用CNFS创建自定义NAS文件系统中通过控制台创建的步骤2步骤4

后续步骤

关于如何监控节点侧NAS存储资源,请参见NAS存储监控使用示例