Kubernetes 弹性伸缩HPA功能加强Advanced Horizontal Pod Autoscaler -介绍部署篇

背景

WHAT(作什么)

Advanced Horizontal Pod Autoscaler(简称:AHPA)是kubernetes中HPA的功能加强. 在兼容原生HPA功能基础上,增长预测、执行模式配置、缩容控制等功能。用户可使用AdvancedHorizontalPodAutoscaler对支持scale功能的对象(例如Deployment等)进行弹性伸缩。git

WHY(为何作)

HPA在使用方面存在不便之处:github

  • 扩缩模式不灵活:建立HPA后,资源真实扩缩后方可验证可用性
  • 扩缩控制存在必定风险,缩容按照目标态单次执行,易形成业务抖动
  • 针对规律性强应用,没法进行特殊处理,好比提早备容,下降扩容效率低带来的风险
  • 支持指标须要自定义扩展,须要必定开发成本

How(怎么作)

AHPA功能分为两部分:controller和algorithm。算法

  • controller部分:HPA功能兼容、阈值触发和预测触发结果处理、扩缩模式功能、缩容控制功能等
  • algorithm部分:提供一个基于STL + auto-arima的预测算法实现功能
  • 总体架构以下:

使用场景

周期性规律明显应用成本优化 --提早备容,下降容量风险

针对规律性明显的应用,通常有以下特征:架构

上图中,红线表示应用的入网流量(qps),蓝线表示容器数。从图中蓝色能够看出,在qps到来前一段时间(好比:60min)已经开始备容,在qps达到峰值前资源已经ready,下降流量高峰来临时刻备容应用抖动带来的风险;在qps峰值事后,资源缓慢回收(缩容速率线性递减),避免产生浪费。经过上图能够看出,针对规律性明显应用,提早备容,缓慢缩容,最终可以保证应用稳定性的前提下达到成本优化目的。优化

部署

前置条件

  • helm v2版本大于 v2.11.0+.
  • 预测功能依赖"阿里云云监控",需安装"ack-alibaba-cloud-metrics-adapter"组件.

安装 && 卸载

安装chart

方式一:进入“容器服务”->"市场"->"应用目录"->"ack-advanced-horizontal-pod-autoscaler"进行安装,以下图:阿里云

方式二:url

卸载chart

helm参数配置

使用

运行一个AHPA demo

AHPA功能加强配置说明 && 指标支持

功能加强说明

指标支持

最后

Advanced Horizontal Pod Autoscaler可针对周期性规律强的应用进行提早备容,减小扩容资源申请、应用启动耗时带来的容量风险,同时更好的支持扩缩模式和扩缩控制,增长了自动扩缩的业务的可用性。AHPA目前向白名单用户开放,申请地址:https://page.aliyun.com/form/act946163602/index.htm,欢迎你们试用并提新需求。spa

iPhone 11 Pro、卫衣、T恤等你来抽,立刻来试试手气 https://www.aliyun.com/1111/2019/m-lottery?utm_content=g_1000083877orm


本文做者:寒砚htm

原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索