重要 请使用以下推荐的方式挂载NAS文件系统。使用其他方式挂载NAS文件系统可能出现稳定性风险,NAS团队无法预估该风险且由于该风险引起的一切损失和后果均由您自行承担。
容器服务存储插件说明阿里云容器服务Kubernetes版基于Kubernetes容器存储接口(CSI),深度融合阿里云存储服务,并完全兼容Kubernetes原生的存储服务。
容器网络文件系统CNFS则是阿里云容器服务利用CSI插件抽象出的新的容器存储管理方式,与传统CSI使用模式保持兼容。我们推荐您在使用阿里云容器服务时使用CNFS来管理和访问NAS存储卷,从而获得明显的性能提升和强大的管理能力和I/O可观测性。
说明 如果您的容器集群规模较小,很少进行弹性伸缩,且主要用于测试目的,您也可以使用HostPath方式使用NAS。更多信息,请参见HostPath数据卷。
如果是自建Kubernetes集群,对于大规模弹性伸缩的集群,建议使用CSI存储插件访问文件系统。对于规模稳定集群,建议使用Kubernetes内置存储卷volume访问文件系统。更多信息,请参见自建Kubernetes挂载NAS。
存储插件使用须知如下:
对于新建阿里云容器服务Kubernetes集群,推荐使用CNFS。
对于已经创建的阿里云容器服务Kubernetes集群,建议迁移至CNFS。
对于已经创建的Kubernetes集群,建议沿用已经安装的存储插件类型。
关于CSI存储插件的更多信息,请参见存储。
容器网络文件系统CNFS(推荐)在容器中使用传统的NAS共享文件系统存在小文件读写延迟高,缺少容量配额的精确控制、无法恢复误删文件、缺失存储卷可观测指标等等问题。阿里云容器服务ACK的CNFS将阿里云的文件存储NAS抽象为一个K8s对象(CRD)进行独立管理,包括创建、删除、描述、挂载,监控及扩容等运维操作。并在CSI插件中利用NAS的加速客户端功能,实现NAS访问速度的大幅提升。CNFS是免费功能,开启加速能力后,会消耗Pod中50~100 MB左右内存。
指标
测试场景①
未开启CNFS加速客户端
开启CNFS加速客户端
元数据性能
100万文件目录遍历耗时
18min
小于60s
创建写入4 KB文件耗时
3000μs
小于200μs
重复读取4 KB文件耗时
400μs
小于100μs
吞吐性能
单节点读写吞吐性能②
200~500 MB/s
大于800 MB/s
综合场景性能
5000张150 KB图片解压缩耗时
52s
约15s
构建Redis项目耗时
27s
约21s
重要 本文以上表格提供的数据仅为理论值(参考值),实际数据以您的操作环境为准。
注解①:测试数据的ECS机型为ecs.hfg6.4xlarge,测试环境的差异可能导致性能数据有一定偏差。
注解②:ECS网络带宽和NAS文件系统规格会影响单节点读写吞吐性能。
如果您使用容器网络文件系统CNFS访问NAS文件系统,请参见创建CNFS管理NAS文件系统(推荐)。
如果您使用容器环境进行科学计算(AI训练、生物计算等)、搭建CICD平台或者网站服务,建议您开启CNFS的分布式读缓存功能。具体操作,请参见开启CNFS NAS计算端分布式缓存。
关于容器网络文件系统CNFS的更多信息,请参见通过CNFS管理NAS文件系统(推荐)。
CSI存储插件如果您使用CSI插件挂载NAS文件系统,请先查阅NAS存储卷概述。
CSI存储插件支持以下两种挂载方式:
静态存储卷挂载:如果您需要手动创建PV,请参见通过NFS使用NAS静态存储卷。
动态存储卷挂载:如果您需要存储插件(Storage Class)自动创建的PV,请参见通过NFS使用NAS动态存储卷。
如需更深入地理解和管理CSI插件及CSI Provisioner组件,请参见如下信息:
管理csi-plugin和csi-provisioner组件
配置NAS NFS存储卷容量
更多存储相关问题,请参见NAS存储卷FAQ。
附录容器持久化存储系列课程,请参见玩转容器持久化存储。