You can use Alibaba Cloud NAS volumes in ACK clusters. This topic describes the scenarios and considerations for using NAS volumes.
The ContainerOS operating system is not supported. You must migrate FlexVolume to CSI before you upgrade the node operating system. For more information, see Migrate FlexVolume to CSI.
Prerequisites
Before you use NAS volumes, you must create a file system and add a mount target in the NAS console. The mount target of the NAS file system must be in the same VPC as your cluster.
For example, a mount target is in the 055f84ad83-ixxxx.cn-hangzhou.nas.aliyuncs.com format.
Background information
Alibaba Cloud NAS supports two Kubernetes mount drivers:
Static persistent volumes
Dynamically provisioned volumes
Scenarios
For optimal performance, use NAS mounts and ECS instances that are in the same zone. Using NAS mounts and ECS instances across different zones may degrade NAS performance.
Static persistent volumes
NAS provides shared storage. In most scenarios, mounting a static persistent volume can meet your requirements.
Dynamically provisioned volumes
You can use dynamically provisioned volumes to provide different NAS subdirectories for different users or applications to mount.
You can also use dynamically provisioned volumes when you deploy an application with a StatefulSet and each pod is configured to use a different NAS volume.
Recommended mount methods
We recommend that you use the following methods.
Recommended storage driver
We recommend that you use the Alibaba Cloud FlexVolume driver for file storage.
The FlexVolume driver is installed by default when you create an Alibaba Cloud-managed Kubernetes cluster. Make sure that the driver is the latest version. If the driver is not the latest version, see Upgrade components.
Recommended mount methods
To mount a static persistent volume, see Use a static NAS volume.
To mount a dynamically provisioned volume, see Use a dynamic NAS volume.
Mount methods that are not recommended
Container Service for Kubernetes (ACK) supports mounting only through the Alibaba Cloud FlexVolume storage driver. The native Kubernetes NFS driver is not supported.
Notes
NAS provides shared storage and can be used by multiple pods at the same time. A PersistentVolumeClaim (PVC) can also be used by multiple pods at the same time.
Do not delete the NAS mount target before you unmount the NAS file system. Otherwise, the operating system may become unresponsive.
After you create a NAS mount target, wait until its Status changes to Available before you use it.
We recommend using the NFSv3 mount protocol for volumes.
Before you use NAS volumes, you must upgrade FlexVolume to the latest version.
Extreme NAS file systems support only NFSv3. Therefore, you must add the
nolockparameter to the mount options.If you select the FlexVolume storage plug-in when you create an ACK cluster, you must install the alicloud-nas-controller component to use dynamic NAS volumes. For more information, see Install components.