文档首页 > > 用户指南> 插件管理> autoscaler

autoscaler

分享
更新时间: 2020/01/22 GMT+08:00

插件简介

集群自动扩缩容插件autoscaler,是根据pod调度状态及资源使用情况对集群的node节点进行自动扩容缩容的插件。

云容器引擎简化了Kubernetes集群的创建、升级和手动扩缩容,而集群中应用的负载本身是会随着时间动态变化的,为了更好的平衡资源使用率以及性能,kubernetes引入了autoscaler插件,它可以根据部署的应用所请求的资源量自动的动态的伸缩集群。

autoscaler可分成扩容和缩容两个方面:

  • 当集群中的Pod由于node节点资源不足而调度失败时,会触发集群扩容,自动执行扩容操作。当前该插件使用的是最小浪费策略,即若pod创建需要3核,此时有4核、8核两种规格,优先创建规格为4核的节点。

    自动扩容策略在需满足如下一种情况时才会执行:

    • 节点上的资源不足。
    • 其他的调度配置中不包含节点亲和的策略(在亲和策略中如果包含节点亲和策略则不会自动扩容节点),节点亲和策略设置方法请参见节点亲和性
  • 当集群中的节点在一段时间内未被充分利用,且这个节点上的Pod能够调度到其他节点,自动执行缩容操作(即节点会被自动删除)。

使用约束

  • 集群为1.9.7-r1及以上版本时,才支持此功能。
  • 该插件功能仅支持通过按需计费方式购买的虚拟机节点,不支持“包年/包月”方式购买的节点和裸金属节点。

安装插件

  1. 登录CCE控制台,在左侧导航栏中选择插件管理,在插件市场中,单击autoscaler插件下的“安装插件”
  2. 在安装插件页面,选择您要安装插件的集群和插件版本,单击“下一步:规格配置”
  3. 参照表1配置插件安装参数。

    表1 基本配置

    参数

    支持的插件版本

    参数说明

    插件规格

    所有版本

    插件部署可选择“单实例”“高可用”两种规格。

    • 单实例:以单实例部署插件。
    • 高可用:以多实例部署插件,具有高可用能力,需占用更多的计算资源。

    实例数

    所有版本

    选择上方插件规格后,显示插件中的实例数,此处仅作显示。

    容器

    所有版本

    选择插件规格后,显示插件容器的CPU和内存配额,此处仅作显示。

    登录方式

    部分版本无此参数

    为自动扩容node节点选择登录方式,当前支持“密码”“密钥对”两种方式,您可根据需要进行选择。

    选择“密码”方式:

    • 密码:自动扩容node节点密码。通过该密码登录node节点执行相关操作,用户名为root。
    • 确认密码:再次输入自动扩容node节点密码。

    选择“密钥对”方式:

    密钥对:密钥对用于远程登录节点时的身份认证,请选择已有密钥对或创建密钥对

    自动缩容

    所有版本

    默认不开启:将不开启自动缩容,只进行自动扩容。

    开启:开启自动缩容,且自建节点和插件扩容所创建的节点均可缩容。

    • 空置时间(min):当集群节点处于一段时间的空闲状态时,会触发集群缩容操作,删除节点,默认10min。
    • 百分比:当集群节点资源低于多少百分比时,进行集群缩容扫描(默认0.5,即50%,cpu和mem都要满足的条件下才会缩容)。
    • 扩容后缩容冷却时间:扩容执行后能再次启动缩容评估的时间间隔,默认10min。
    • 节点删除后缩容冷却时间:删除节点后能再次启动缩容评估的时间间隔,默认10min。
    • 缩容失败后缩容冷却时间:缩容失败后能再次启动缩容评估的时间间隔,默认3min。
    • 空节点缩容最大并发数:默认10。
    • 不可移除节点的重检查时间:节点被判定不可移除后能再次启动检查的时间间隔,默认5min。
    说明:
    当节点处于以下几种状态时,不可缩容:
    • pod设置为PodDisruptionBudget,当不满足条件时,节点不会缩容。
    • pod设置本地存储时,节点不会缩容。
    • pod由于一些限制,如亲和、反亲和等,无法调度到其他节点,节点不会缩容。
    • pod拥有"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"这个annotations时,节点不缩容。
    • 节点上存在kube-system命名空间下的Pod(除kube-system daemonset创建的Pod)。
    • 节点上有非controller(deployment/replica set/job/stateful set)创建的Pod。

    预置节点池配置

    部分版本无此参数

    此为默认资源组。集群扩容时,若没有其他可用分组,将使用默认分组的资源规格进行扩容节点。

    单击“添加预置节点池配置”进行参数设置:

    • 可用区:选择一个可用区。可用区是指在同一区域下,电力、网络隔离的物理区域。
    • 操作系统:选择节点对应的操作系统。
    • Taints:可选项,默认为空。
      支持给该节点池扩容出来的节点加Taints来设置反亲和性,每个节点池最多配置10条Taints,每条Taints包含以下3个参数:
      • Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀。
      • Value:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。
      • Effect:只可选NoSchedule,PreferNoSchedule或NoExecute。
      须知:
      • Taints配置时需要配合Pod的toleration使用,否则可能导致扩容失败或者Pod无法调度到扩容节点。
      • 配置后无法修改,请您谨慎配置,错误的配置可能会导致扩容失败或pod无法调度。
    • 标签管理:通过为资源添加标签,可以对资源进行自定义标记,实现资源的分类。
      说明:

      您可以在TMS中创建“预定义标签”,预定义标签对所有支持标签功能的服务资源可见,通过使用预定义标签可以提升标签创建和迁移效率。具体请参见创建预定义标签

    • 节点规格:节点的CPU配置和内存配置。

    单击下方的“高级设置”,可以配置更多插件参数:

    表2 高级设置

    参数

    插件版本

    参数说明

    节点总数

    所有版本

    可扩容的最大节点总数。

    cpu总数(核)

    所有版本

    可扩容的最大cpu总数(核)。

    内存总数(GB)

    所有版本

    可扩容的最大内存总数(GB)。

    自动扩容

    部分版本无此参数

    未调度实例扩容:默认选中。

    启用集群使用率扩容:可选,扩容能力增强。

    • cpu扩容使用率:当节点池CPU达到所设置的使用上限,将扩容当前预置节点池的节点数。
    • 内存扩容使用率:当节点池内存达到所设置的使用上限,将扩容当前预置节点池的节点数。

    磁盘

    部分版本无此参数

    系统盘和数据盘:设置节点磁盘空间。
    • 系统盘:规格为[40,1024]GB,用户可以配置,缺省值为40GB。
    • 数据盘:规格为[100,32678]GB,用户可以配置,缺省值为100GB。

      勾选“资源分配自定义”后,您可以对数据盘中的Docker和Kubelet资源占比进行自定义设置。

      须知:
      • 磁盘使用direct-lvm模式,移除将使用loop-lvm模式,有影响系统稳定性的风险。了解更多
      • Docker资源包含Docker镜像数据以及镜像元数据,Kubelet资源包含Pod配置文件、密钥以及临时存储EmptyDir等挂载数据。
    • 数据盘:单击“新增数据盘”,您可以增加一块数据盘。

    系统盘和数据盘均可提供以下性能规格的云硬盘:

    • 普通IO:是指由SATA存储提供资源的磁盘类型。提供可靠的块存储,单个云硬盘的最大IOPS可达到1000,可运行关键应用程序。
    • 高IO:是指由SAS存储提供资源的磁盘类型。提供可达到3000的高IO和低至1 ms的读写延时,支持NoSQL/关系型数据库,数据仓库,文件系统等应用。
    • 超高IO:是指由SSD存储提供资源的磁盘类型。提供可达到20000的超高IO和低至1 ms超低读写时延,支持NoSQL/关系型数据库,数据仓库等应用。

    命令行注入

    部分版本无此参数

    请输入脚本命令。

    说明:

  4. 配置完成后,单击“安装”。

    待插件安装完成后,单击“返回插件管理”,在“插件实例”页签中,选择对应的集群,可查看到运行中的实例,这表明该插件已在当前集群的各节点中安装。

卸载插件

  1. 登录CCE控制台,在左侧导航栏中选择插件管理,在插件市场中,选择对应的集群,单击autoscaler下的“卸载”
  2. 在弹出的窗口中,单击“确认”,可卸载该插件。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区