更新时间:2023-10-27 GMT+08:00

存储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)的存储,否则将导致部分存储功能异常。

如何判断集群的存储插件模式

  1. 登录CCE控制台。
  2. 在控制台左侧栏目树中,单击“插件中心”。
  3. 在右侧的插件管理列表中,单击“插件实例”页签。
  4. 在插件实例页面下,选择右上方的集群后,可以看到创建该集群时默认安装的存储插件。

CSI和Flexvolume存储插件的区别

表1 CSI与Flexvolume

Kubernetes插件方案

CCE插件名称

插件特性

使用推荐

CSI

everest

CSI插件是kubernetes社区推荐的存储插件机制。CCE发布的kubernetes1.15版本及以上版本默认安装CSI插件everest,并用于对接块存储、文件存储、对象存储、极速文件存储等Iaas存储服务。

everest插件包含两部分:

  • everest-csi-controller:提供存储卷的创建、删除、扩容、云盘快照等功能;
  • everest-csi-driver:提供存储卷在node上的挂载、卸载、格式化等功能。

详情请参见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插件,详情请参见集群升级路径