如何利用kubernetes实现应用的水平扩展(HPA)

云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性。对于Kubernetes中的POD集群来说,HPA就是实现这种水平伸缩的控制器, 它能在当POD中业务负载上升的时候,创建新的POD来保证业务系统稳定运行,当POD中业务负载下降的时候,可以销毁POD来提高资源利用率。

HPA介绍

Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。为什么要水平而不叫垂直, 那是因为自动扩展主要分为两种:

  • 水平扩展(scale out),针对于实例数目的增减
  • 垂直扩展(scal up),即单个实例可以使用的资源的增减, 比如增加cpu和增大内存
    而HPA属于前者。它可以根据CPU使用率或应用自定义metrics自动扩展Pod数量(支持 replication controller、deployment 和 replica set)

架构介绍

如何利用kubernetes实现应用的水平扩展(HPA)_第1张图片
获取metrics的两种方式:

  • Heapster: heapster提供metrics服务, 但是在v1(autoscaling/v1)版本中仅支持以CPU作为扩展度量指标, 而其他比如:内存, 网络流量, qps等目前处于beta阶段(autoscaling/v2beta1)
  • Cousom: 同样处于beta阶段(autoscaling/v2beta1), 但是涉及到自定义的REST API的开发, 复杂度会大一些, 并且当需要从自定义的监控中获取数据时,只能设置绝对值,无法设置使用率

工作流程:

  • 1.创建HPA资源,设定目标CPU使用率限额,以及最大、最小实例数, 一定要设置Pod

你可能感兴趣的:(PaaS)