更新时间:2024-11-12 GMT+08:00

CCE容器存储(Everest)

插件简介

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

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

约束与限制

  • 插件版本为1.2.0的CCE容器存储插件(Everest)优化了使用OBS存储时的密钥认证功能,低于该版本的插件在升级完成后,需要重启集群中使用OBS存储的全部工作负载,否则工作负载使用存储的能力将受影响。
  • Huawei Cloud EulerOS 1.1系统的节点支持2.x.x版本(2.1.9及以上)和1.2.x版本(1.2.70及以上)的CCE容器存储插件(Everest),不支持1.3.x版本的插件。

安装插件

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

  1. 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到CCE容器存储(Everest)插件,单击“安装”
  2. 在安装插件页面,根据需求选择“规格配置”

    • 选择“系统预置规格”时,您可根据并发域名解析能力选择“小规格”、“中规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。

      “小规格”最大支持50节点、500PVC规模集群;“中规格”最大支持200节点、2000PVC规模集群;“大规格”最大支持1000节点、10000PVC规模集群。

    • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。其中,插件组件的CPU和内存申请值可根据集群节点规模和PVC数量不同进行调整,配置建议请参见表1

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

      • 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。
      表1 典型场景组件限制值建议

      配置场景

      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. 设置插件支持的“参数配置”

    表2 everest插件参数配置

    配置项

    配置方式

    参数说明

    节点预留给非容器场景的EVS盘槽位(number_of_reserved_disks)

    可视化界面配置

    插件版本为2.3.11及以上时支持该参数,用于设置节点上预留的挂盘数,预留出部分盘位供用户自定义挂载云硬盘使用。

    假设节点可挂载的云硬盘上限为20,并设置该参数值为6,则在调度挂载云硬盘的工作负载时,实际上节点可挂载的云硬盘为20-6=14。预留的6个挂盘数中,除去节点上已挂载的1块系统盘和1块数据盘后,还可以自定义挂载4块云硬盘,可以作为额外的数据盘或者作为裸盘用于创建本地存储池。

    禁用全局访问密钥挂载对象存储(disable_auto_mount_secret)

    可视化界面配置

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

    • 是:对象存储PVC未指定自定义挂载密钥时,默认使用用户上传的全局长效密钥挂载对象存储。
    • 否:对象存储PVC未指定自定义挂载密钥时,不使用用户上传的全局长效密钥挂载对象存储,会导致PVC无法挂载。

    处理EVS盘挂载任务的并发数(csi_attacher_worker_threads)

    可视化界面配置

    CCE容器存储插件(Everest)中同时处理挂EVS卷的worker数,默认值为“60”。

    处理EVS盘卸载任务的并发数(csi_attacher_detach_worker_threads)

    可视化界面配置

    CCE容器存储插件(Everest)中同时处理卸载EVS卷的worker数,默认值均为“60”。

    分布式挂卷策略(enable_node_attacher)

    可视化界面配置

    开启时,由每个节点上的everest-csi-driver组件负责attach/detach EVS卷。

    不开启时,由everest-csi-controller负责attach/detach EVS卷。

    flow_control

    扩展参数配置

    采用默认的API客户端流控配置,具体配置可在CCE容器存储插件安装好后查看kube-system命名空间下ConfigMap everest-driver-th-config详情。

    over_subscription

    扩展参数配置

    本地存储池(local_storage)的超分比。默认为80,若本地存储池为100GiB,可以超分为180GiB使用,即超分后的总容量=(1+超分比)*实际容量。

    enable_local_autoexpander

    扩展参数配置

    是否开启精简卷本地存储池自动扩容,开启后,会根据本地存储池扩容阈值和扩容步长触发自动扩容。

    expansion_threshold

    扩展参数配置

    精简卷本地存储池使用率扩容阈值,当精简卷本地存储池使用率超过阈值时,触发本地存储池自动扩容。

    expansion_step

    扩展参数配置

    精简卷本地存储池单块EVS盘扩容步长,单位Gi

    expansion_max_evs_size

    扩展参数配置

    精简卷本地存储池单块EVS盘扩容的上限,单位Gi

    volume_attaching_flow_ctrl

    扩展参数配置

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

    在扩展参数配置中,您可以自定义设置可视化界面中没有的高级配置。如果扩展参数配置中的设置与可视化界面中的参数设置冲突,将以扩展参数配置为准。

  4. 设置插件实例的部署策略。

    • 调度策略对于DaemonSet类型的插件实例不会生效。
    • 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
    表3 插件调度配置

    参数

    参数说明

    多可用区部署

    • 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
    • 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。
    • 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。

    节点亲和

    • 不配置:插件实例不指定节点亲和调度。
    • 指定节点调度:指定插件实例部署的节点。若不指定,将根据集群默认调度策略进行随机调度。
    • 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。
    • 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。

      同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。

    容忍策略

    容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。

    插件会对实例添加针对node.kubernetes.io/not-readynode.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。

    详情请参见设置容忍策略

  5. 单击“安装”

组件说明

表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

Prometheus指标采集

everest-csi-controller通过端口3225暴露Prometheus metrics指标。您可以自建Prometheus采集器识别并通过http://{{everest-csi-controllerPodIP}}:3225/metrics路径获取everest-csi-controller相关指标。

Prometheus指标暴露仅支持Everest插件2.4.4及以上版本。

表5 关键指标说明

指标名称

指标类型

描述

Labels

举例

everest_action_result_total

counter

everest不同功能的调用情况

action:表示不同功能,详情请参见表6

result:表示调用成功或失败

everest_action_result_total{action="create_snapshot:disk.csi.everest.io",result="success"} 2

everest_function_duration_seconds_bucket

histogram

everest不同功能在不同执行时间下的次数

function:表示不同功能,详情请参见表6

everest_function_duration_seconds_bucket{function="create_snapshot:disk.csi.everest.io",le="10"} 2

everest_function_duration_seconds_sum

histogram

everest不同功能的调用时间总和

function:表示不同功能,详情请参见表6

everest_function_duration_seconds_sum{function="create:disk.csi.everest.io"} 24.381399053

everest_function_duration_seconds_count

histogram

everest不同功能的调用次数

function:表示不同功能,详情请参见表6

everest_function_duration_seconds_count{function="attach:disk.csi.everest.io"} 4

action及function表示不同CSI驱动及其功能,表示为:{功能}:{CSI驱动}。例如create:disk.csi.everest.io,表示功能为创建卷、卷类型为云硬盘。

表6 功能说明

功能名称

功能描述

create

创建卷

delete

删除卷

attach

卷挂载

detach

卷卸载

expand

卷扩容

create_snapshot

创建卷快照

delete_snapshot

删除卷快照

版本记录

表7 CCE容器存储插件(Everest)版本记录

插件版本

支持的集群版本

更新特性

2.4.75

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

HCE2.0节点上的云硬盘类型PVC支持指定Fstype类型为xfs

2.4.72

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

适配CCE v1.30版本

2.4.44

v1.23

v1.25

v1.27

v1.28

v1.29

  • 支持在SFS3.0文件系统中创建子目录
  • 支持获取存储卷的使用情况

2.4.28

v1.23

v1.25

v1.27

v1.28

v1.29

修复部分问题

2.4.21

v1.23

v1.25

v1.27

v1.28

v1.29

  • 支持OBS多AZ冗余存储策略
  • 支持自定义存储卷名称前缀
  • 支持包周期EVS卷

2.4.8

v1.21

v1.23

v1.25

v1.27

v1.28

v1.29

  • 适配CCE v1.29集群
  • 支持GPSSD2类型磁盘
  • 支持DSS专属分布式存储,同时集群版本需要满足v1.21.15-r0、v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上

2.3.23

v1.21

v1.23

v1.25

v1.27

v1.28

支持在SFS Turbo文件系统中创建子目录

2.3.21

v1.21

v1.23

v1.25

v1.27

v1.28

修复部分问题

2.3.14

v1.21

v1.23

v1.25

v1.27

v1.28

适配CCE v1.28版本

2.1.51

v1.19

v1.21

v1.23

v1.25

v1.27

支持Huawei Cloud EulerOS 2.0系统

2.1.30

v1.19

v1.21

v1.23

v1.25

  • 支持插件实例AZ反亲和配置
  • obsfs包适配Ubuntu 22.04

2.1.13

v1.19

v1.21

v1.23

v1.25

SFS Turbo存储卷subpath PVC批创性能优化

2.1.9

v1.19

v1.21

v1.23

v1.25

  • 支持controller优雅退出
  • 适配CCE v1.25版本

2.0.9

v1.19

v1.21

v1.23

  • 对 everest 部分代码及架构进行重构,改善代码架构,提高插件的可扩展性和稳定性
  • 支持优雅退出
  • 支持OBS进程监控

1.3.28

v1.19

v1.21

v1.23

  • 支持优雅退出
  • 支持OBS进程监控

1.3.22

v1.19

v1.21

v1.23

修复重复挂盘偶现挂载后读写失败的问题

1.3.20

v1.19

v1.21

v1.23

修复重复挂盘偶现挂载后读写失败的问题

1.3.17

v1.19

v1.21

v1.23

  • 调整everest-csi-driver滚动更新的最大不可用数:从10更新到10%
  • 自定义规格支持Pod反亲和
  • 统计节点上可由csi插件管理的scsi卷个数的上限
  • 支持Driver自定义资源规格部署

1.3.8

v1.23

适配CCE v1.23集群

1.3.6

v1.23

适配CCE v1.23集群

1.2.78

v1.15

v1.17

v1.19

v1.21

支持插件实例AZ反亲和配置

1.2.70

v1.15

v1.17

v1.19

v1.21

SFS Turbo存储卷subpath PVC批创性能优化

1.2.67

v1.15

v1.17

v1.19

v1.21

  • 支持controller优雅退出
  • 支持OBS进程监控

1.2.61

v1.15

v1.17

v1.19

v1.21

  • 支持优雅退出
  • 支持OBS进程监控

1.2.55

v1.15

v1.17

v1.19

v1.21

修复重复挂盘偶现挂载后读写失败的问题

1.2.53

v1.15

v1.17

v1.19

v1.21

修复重复挂盘偶现挂载后读写失败的问题

1.2.51

v1.15

v1.17

v1.19

v1.21

  • 调整everest-csi-driver滚动更新的最大不可用数:从10更新到10%
  • 自定义规格支持Pod反亲和
  • 统计节点上可由csi插件管理的scsi卷个数的上限

1.2.44

v1.15

v1.17

v1.19

v1.21

  • EVS、OBS存储卷支持选择企业项目
  • OBS对象桶挂载默认不再使用enable_noobj_cache参数

1.2.42

v1.15

v1.17

v1.19

v1.21

  • EVS、OBS存储卷支持选择企业项目
  • OBS对象桶挂载默认不再使用enable_noobj_cache参数

1.2.30

v1.15

v1.17

v1.19

v1.21

CCE支持EmptyDir

1.2.28

v1.15

v1.17

v1.19

v1.21

适配CCE v1.21集群

1.2.27

v1.15

v1.17

v1.19

v1.21

支持极速型SSD(ESSD)、通用型SSD(GPSSD)类型云硬盘

1.2.13

v1.15

v1.17

v1.19

支持EulerOS 2.10系统。

1.2.9

v1.15

v1.17

v1.19

  • 增强PV资源生命周期维护的可靠性
  • 支持1.19.10版本集群使用Attach/Detach Controller挂卸卷能力
  • 提高SFS挂载稳定性
  • 新建集群EVS默认创建类型调整为SAS

1.2.5

v1.15

v1.17

v1.19

  • 提升挂载相关能力可靠性
  • 优化了使用OBS存储时的认证功能,需要用户上传密钥
  • 提高everest插件对flexvolume卷的兼容能力
  • 提高插件运行稳定性

1.1.12

v1.15

v1.17

优化和增强everest-csi-controller组件可靠性

1.1.11

v1.15

v1.17

  • 配置安全加固
  • 支持挂载三方OBS存储
  • 切换更优性能的EVS查询接口
  • 默认快照以clone模式创建磁盘
  • 优化和增强Attach和Detach磁盘状态检测和日志输出
  • 增加认证过期判断可靠性

1.1.8

v1.15

v1.17

支持CCE v1.17,v1.13升级到v1.15场景支持接管Flexvolume

1.1.7

v1.15

v1.17

支持CCE v1.17,v1.13升级到v1.15场景支持接管Flexvolume