全部產品
Search
文件中心

Container Service for Kubernetes:通過CNFS管理NAS檔案系統

更新時間:Aug 06, 2024

容器網路檔案系統CNFS(Container Network File System)將阿里雲的檔案儲存體抽象為一個K8s對象(CRD)進行獨立管理,包括建立、刪除、描述、掛載、監控及擴容等營運操作,為了提升NAS檔案系統的效能,您可以通過CNFS使用NAS檔案系統,以提升NAS檔案系統的效能和QoS控制,實現對檔案系統層的獨立管理。本文介紹如何使用CNFS託管NAS檔案系統及CNFS在工作負載中的應用。

前提條件

  • 已開通Apsara File Storage NAS服務。

    首次登入Apsara File Storage 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服務。具體操作,請參見開通Key Management Service

功能介紹

您可以通過以下三種方式使用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. 登入Container Service管理主控台,在左側導覽列選擇叢集

    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. 登入Container Service管理主控台,在左側導覽列選擇叢集

    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. 登入Container Service管理主控台,在左側導覽列選擇叢集

    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儲存監控使用樣本