容器網絡文件系統CNFS(Container Network File System)將阿里云的文件存儲抽象為一個K8s對象(CRD)進行獨立管理,包括創建、刪除、描述、掛載、監控及擴容等運維操作。您可以通過CNFS創建一個新的NAS文件系統或管理已存在的NAS文件系統,以提升NAS文件系統的性能和QoS控制,實現對文件系統層的獨立管理。本文介紹如何創建CNFS來管理NAS文件系統。
前提條件
已開通文件存儲NAS服務。
首次登錄文件存儲NAS產品詳情頁時,按照頁面引導開通服務。
已創建Kubernetes集群,Kubernetes版本為v1.20及以上,且存儲插件選擇為CSI。具體操作,請參見創建Kubernetes托管版集群。
CSI-Plugin和CSI-Provisioner組件版本不低于v1.24.11-5221f79-aliyun。關于升級CSI-Plugin和CSI-Provisioner組件的操作,請參見管理CSI組件。
storage-operator組件版本不低于v1.24.105-825188d-aliyun。關于升級storage-operator組件的操作,請參見管理組件。
已通過kubectl工具連接Kubernetes集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
說明關于什么是容器網絡文件系統CNFS,請參見容器網絡文件系統CNFS概述。
關于如何使用CNFS托管NAS文件系統,請參見通過CNFS方式使用NAS文件系統。
操作步驟
您可以通過以下兩種方式使用CNFS管理NAS文件系統。
方式一:使用CNFS管理新建的NAS文件系統
執行以下命令,使用CNFS創建并管理通用容量型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 # 容量型NAS。 protocolType: NFS encryptType: None enableTrashCan: "true" # 回收站打開。 trashCanReservedDays: "5" # 回收站中數據保留5天。 EOF
執行以下命令,查看CNFS管理的NAS文件系統。
kubectl get cnfs cnfs-nas-filesystem -oyaml
預期輸出:
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":"cnfs","parameters":{"enableTrashCan":"true","encryptType":"None","filesystemType":"standard","protocolType":"NFS","storageType":"Capacity","trashCanReservedDays":"5"},"reclaimPolicy":"Retain","type":"nas"}} creationTimestamp: "2022-12-14T13:09:59Z" finalizers: - protection.alibabacloud.com/cnfs generation: 6 name: cnfs-nas-filesystem resourceVersion: "20362768" uid: f70edfc7-2760-4304-a693-a682bfc1**** spec: description: cnfs parameters: enableTrashCan: "true" encryptType: None filesystemType: standard protocolType: NFS storageType: Capacity trashCanReservedDays: "5" reclaimPolicy: Retain type: nas status: conditions: - lastProbeTime: "2022-12-14 21:10:33" reason: The nas filesystem and mount target complete initialization. status: Ready fsAttributes: accessGroupName: DEFAULT_VPC_GROUP_NAME enableTrashCan: "true" encryptType: None filesystemId: 971134b0e8 filesystemType: standard protocolType: NFS regionId: cn-zhangjiakou server: 971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com storageType: Capacity trashCanReservedDays: "5" useClient: "NFSClient" vSwitchId: vsw-8vb4m54nru36mdv2s**** vpcId: vpc-8vbv553d3rdcwwin3**** status: Available
方式二:使用CNFS管理已有的NAS文件系統
使用CNFS管理已有NAS文件系統,需要確保已有的NAS文件系統已經在ACK所在VPC內擁有掛載點。關于如何查看掛載點地址,請參見查看掛載點地址。
執行以下命令,將NAS文件系統納入CNFS托管。
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: 971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com # NAS文件系統的掛載點。 EOF
執行以下命令,查看CNFS管理的NAS文件系統。
kubectl get cnfs cnfs-nas-filesystem -oyaml
預期輸出:
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":{"server: 971134b0e8-jsg4.cn-zhangjiakou.nas.aliyuncs.com"}}} creationTimestamp: "2022-12-14T13:09:59Z" finalizers: - protection.alibabacloud.com/cnfs generation: 6 name: cnfs-nas-filesystem resourceVersion: "20362768" uid: f70edfc7-2760-4304-a693-a682bfc1**** spec: description: cnfs parameters: server: 971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com reclaimPolicy: Retain type: nas status: conditions: - lastProbeTime: "2022-12-14 21:10:33" reason: The nas filesystem and mount target complete initialization. status: Ready fsAttributes: accessGroupName: DEFAULT_VPC_GROUP_NAME enableTrashCan: "true" encryptType: None filesystemId: 971134b0e8 filesystemType: standard protocolType: NFS regionId: cn-zhangjiakou server: 971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com storageType: Capacity trashCanReservedDays: "5" useClient: "NFSClient" vSwitchId: vsw-8vb4m54nru36mdv2s**** vpcId: vpc-8vbv553d3rdcwwin3x**** status: Available
相關文檔
如果您需要在多個應用或Pod之間掛載同一個NAS文件系統的相同目錄,多個Pod之間可以共享數據,請參見使用CNFS管理NAS共享存儲卷(推薦)。
如果您需要在多個應用或Pod之間掛載NAS文件系統中的不同目錄以實現存儲隔離,請參見使用CNFS管理NAS隔離存儲卷(推薦)。
如果您需要實現NAS存儲卷的使用率高于某個閾值時觸發自動擴容,請參見使用CNFS自動擴容NAS存儲卷。