ACS的容器存储功能基于Kubernetes容器存储接口(CSI),融合云盘、NAS、OSS等阿里云存储服务,并兼容Kubernetes原生的EmptyDir、ConfigMap等存储。本文主要介绍ACS支持的阿里云存储服务,包括各类存储服务的特点、应用场景、挂载方式等。
存储基础知识
Volume
PV与PVC
选择云存储
阿里云提供针对各种存储资源(块、文件和对象)的低成本、高可靠、高可用的存储服务,您可以根据业务负载的存储需求,考虑数据量、数据访问频率、IOPS和吞吐量等因素,选择合适的云存储服务。
云存储 | 特点 | 应用场景 | 选型参考 |
非共享、低时延、高可靠的数据块级随机存储。类似物理硬盘,支持分区格式化并建立文件系统。 |
| 支持以下类型的云盘:
| |
可共享访问、弹性扩展、高可靠、高性能的分布式文件系统。提供高吞吐和高IOPS的同时,支持文件的随机读写和在线修改。 |
| 支持通用性NAS和极速型NAS。 | |
面向智算业务,提供超高吞吐和IOPS,支持端到端RDMA网络。 |
| 仅支持CPFS智算版。 CPFS智算版目前处于邀测中,目前仅部分地域和可用区支持。更多信息,请参见CPFS智算版。 | |
低成本的海量共享存储空间,适合存储写入后较少修改的数据。 |
|
挂载云存储
存储插件
CSI是当前Kubernetes社区推荐的存储插件实现方案,ACS提供了managed-csiprovisioner作为ACS集群的CSI插件,支持基于阿里云存储资源的存储卷。
在存储卷的挂载、卸载、创建、删除等操作上,CSI插件需要您授予其访问阿里云其他产品资源的权限。CSI插件使用RAM角色授权的方式申请创建AliyunCCCSIPluginRole角色,从而访问您在其他云产品中的资源。更多信息,请参见授权概述。
挂载方式
通过PV描述阿里云存储资源(如云盘、NAS文件系统等),通过PVC绑定PV,然后在Pod的Volume中声明要使用的PVC,可以实现挂载云存储。根据云存储资源对应PV在创建方式上的差异,挂载云存储的方式可以分为以下两种:
静态挂载
根据已有的云存储资源创建PV(即静态存储卷),在PVC中直接绑定PV,以此可以实现静态挂载。该方式可以保证PV在容器启动前已经就绪,适用于已有存储资源的场景。
动态挂载
通过StorageClass定义要动态创建的云存储资源,在PVC中关联StorageClass,系统会根据PVC和StorageClass的配置,自动创建并绑定PV(即动态存储卷),以此可以实现动态挂载。该方式无需提前创建PV,更加灵活和自动化。
各类型存储卷的挂载操作参考如下:
云存储 | 静态挂载 | 动态挂载 |
云盘 | 暂不支持 | |
NAS | ||
CPFS智算版 | 暂不支持 | |
OSS | 暂不支持 |
除持久化存储外,云盘也可以作为临时存储卷来存储临时数据。这类存储卷会随Pod一起创建和删除。具体操作,请参见挂载临时存储卷。