更新时间:2024-01-26 GMT+08:00

CCE Container Storage (Everest)

插件简介

everest是一个云原生容器存储系统,基于CSI(即Container Storage Interface)为Kubernetes v1.15.6及以上版本集群对接云存储服务的能力。

该插件为系统资源插件,Kubernetes 1.15及以上版本的集群在创建时默认安装。

约束与限制

  • 集群版本由v1.13升级到v1.15后,v1.13版本集群中的Flexvolume容器存储插件(storage-driver)能力将由v1.15的CSI插件(everest,插件版本v1.1.6及以上)接管,接管后原有功能保持不变。
  • 插件版本为1.2.0的everest优化了使用OBS存储时的密钥认证功能,低于该版本的everest插件在升级完成后,需要重启集群中使用OBS存储的全部工作负载,否则工作负载使用存储的能力将受影响!
  • v1.15及以上版本的集群默认安装本插件,v1.13及以下版本集群创建时默认安装storage-driver插件。

安装插件

本插件为系统默认安装,若因特殊情况卸载后,可参照如下步骤重新安装。

  1. 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件管理”,在右侧找到CCE Container Storage (Everest),单击“安装”
  2. 在安装插件页面,设置“规格配置”

    表1 插件规格配置

    参数

    参数说明

    实例数

    插件实例的副本数量。

    实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。

    多可用区部署

    • 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区。
    • 强制模式:插件Deployment实例强制调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将无法全部运行。

    容器

    everest插件包含everest-csi-controller和everest-csi-driver两个组件,详情请参见组件说明

    选择插件规格后,显示插件组件的CPU和内存申请值。详情请参见表2

    非典型场景下,限制值一般估算公式如下:

    • everest-csi-controller:
      • CPU限制值:200及以下节点规模设置为250m;1000节点规模设置为350m;2000节点规模设置为500m。
      • 内存限制值 = (200Mi + 节点数 * 1Mi + PVC数 * 0.2Mi)* 1.2
    • everest-csi-driver:
      • CPU限制值:200及以下节点规模设置为300m;1000节点规模设置为500m;2000节点规模设置为800m。
      • 内存限制值 = 200及以下节点规模设置为300Mi;1000节点规模设置为600Mi;2000节点规模设置为900Mi。
    表2 典型场景组件限制值建议

    配置场景

    everest-csi-controller组件

    everest-csi-driver组件

    节点数量

    PV/PVC数量

    插件实例数

    CPU(限制值同申请值)

    内存(限制值同申请值)

    CPU(限制值同申请值)

    内存(限制值同申请值)

    50

    1000

    2

    250m

    600Mi

    300m

    300Mi

    200

    1000

    2

    250m

    1Gi

    300m

    300Mi

    1000

    1000

    2

    350m

    2Gi

    500m

    600Mi

    1000

    5000

    2

    450m

    3Gi

    500m

    600Mi

    2000

    5000

    2

    550m

    4Gi

    800m

    900Mi

    2000

    10000

    2

    650m

    5Gi

    800m

    900Mi

  3. 设置插件支持的“参数配置”

    表3 插件参数配置

    参数

    参数说明

    csi_attacher_worker_threads

    everest插件中同时处理挂EVS卷的worker数,默认值为“60”。

    csi_attacher_detach_worker_threads

    everest插件中同时处理卸载EVS卷的worker数,默认值均为“60”。

    volume_attaching_flow_ctrl

    everest插件在1分钟内可以挂载EVS卷的最大数量,此参数的默认值“0”表示everest插件不做挂卷限制,此时挂卷性能由底层存储资源决定。

    cluster_id

    集群ID。

    default_vpc_id

    集群所在VPC的ID。

    disable_auto_mount_secret

    挂载对象桶/并行文件系统时,是否允许使用默认的AKSK,默认为false。

    enable_node_attacher

    是否开启agent侧attacher,开启后由attacher负责处理VolumeAttachment

    flow_control

    默认为空。用户无需填写。

    over_subscription

    本地存储池(local_storage)的超分比。默认为80,若本地存储池为100G,可以超分为180G使用。

    project_id

    集群所属项目ID。

    everest 1.2.26以上版本针对大批量挂EVS卷的性能做了优化,用户可配置如下3个参数:
    • csi_attacher_worker_threads
    • csi_attacher_detach_worker_threads
    • volume_attaching_flow_ctrl

    上述三个参数由于存在关联性且与集群所在局点的底层存储资源限制有关,当您对大批量挂卷的性能有要求(大于500EVS卷/分钟)时,请联系客服,在指导下进行配置,否则可能会因为参数配置不合理导致出现everest插件运行不正常的情况。

  4. 单击“安装”

组件说明

表4 everest组件

容器组件

说明

资源类型

everest-csi-controller

此容器负责存储卷的创建、删除、快照、扩容、attach/detach等功能。若集群版本大于等于1.19,且插件版本为1.2.x,everest-csi-controller组件的Pod还会默认带有一个everest-localvolume-manager容器,此容器负责管理节点上的lvm存储池及localpv的创建。

Deployment

everest-csi-driver

此容器负责PV的挂载、卸载、文件系统resize等功能。若插件版本为1.2.x,且集群所在区域支持node-attacher,everest-csi-driver组件的Pod还会带有一个everest-node-attacher的容器,此容器负责分布式attach EVS,该配置项在部分Region开放。

DaemonSet