存储Flexvolume概述
容器存储是为容器工作负载提供存储的组件,支持多种类型的存储,同一个工作负载(pod)可以使用任意数量的存储。
云容器引擎CCE的容器存储功能基于Kubernetes存储系统,并深度融合云存储服务,完全兼容Kubernetes原生的存储服务,例如EmptyDir、HostPath、Secret、ConfigMap等存储。
1.13及以下版本的CCE基于Kubernetes社区Flexvolume容器存储接口(storage-driver)实现了云存储服务接入能力,目前该插件已经不是官方建议的存储扩展方式,在1.15及以上版本的CCE集群中默认安装CSI容器存储插件(everest),详情参见存储概述。
- Kubernetes1.13版本之前的CCE集群不支持端到端容器存储扩容功能,PVC容量与存储容量不一致。
- 在v1.13及以下版本的集群中,当存储功能有升级或者BUG修复时,用户无需升级集群或新建集群来升级存储功能,仅需安装或升级storage-driver插件。
约束与限制
- 在CCE所创的集群中,Kubernetes v1.15.11版本是Flexvolume插件(storage-driver)被CSI插件(everest)兼容接管的过渡版本,v1.17及之后版本的集群中将彻底去除对Flexvolume插件(storage-driver)的支持,请您将Flexvolume插件的使用切换到CSI插件上。
- CSI插件(everest)兼容接管Flexvolume插件(storage-driver)后,原有功能保持不变,但请注意不要新建Flexvolume插件(storage-driver)的存储,否则将导致部分存储功能异常。
如何判断集群的存储插件模式
- 登录CCE控制台。
- 在控制台左侧栏目树中,单击“插件中心”。
- 在右侧的插件管理列表中,单击“插件实例”页签。
- 在插件实例页面下,选择右上方的集群后,可以看到创建该集群时默认安装的存储插件。
CSI和Flexvolume存储插件的区别
Kubernetes插件方案 |
CCE插件名称 |
插件特性 |
使用推荐 |
---|---|---|---|
CSI |
everest |
CSI插件是kubernetes社区推荐的存储插件机制。CCE发布的kubernetes1.15版本及以上版本默认安装CSI插件everest,并用于对接块存储、文件存储、对象存储、极速文件存储等Iaas存储服务。 everest插件包含两部分:
详情请参见everest |
针对1.15及以上版本的集群,在创建时将默认安装CSI插件(everest)。CCE会跟随社区持续更新CSI插件的各种能力。 |
Flexvolume |
storage-driver |
Flexvolume插件是kubernetes社区早期实现的存储卷插件机制。自CCE上线伊始,提供的就是Flexvolume数据卷服务。CCE发布的kubernetes 1.13及以下版本安装的插件是“storage-driver”,并用于对接块存储、文件存储、对象存储、极速文件存储等Iaas存储服务。 详情请参见storage-driver |
针对已经创建的1.13及以下版本的集群,仍然使用已经安装的Flexvolume存储插件(storage-driver),CCE已停止更新该插件,您可以升级集群版本。 |
- 不支持CSI和Flexvolume插件在同一个集群中使用。
- 不支持将v1.13及以下版本集群的Flexvolume插件转变到CSI插件,v1.13版本的集群可以通过升级集群版本切换为CSI插件,详情请参见集群升级路径。