您的位置:首页 > 其它

K8S的横向自动扩容的功能Horizontal Pod Autoscaling

2020-02-02 06:53 561 查看

K8S 作为一个集群式的管理软件,自动化、智能化是免不了的功能。Google 在 K8S v1.1 版本中就加入了这个 Pod 横向自动扩容的功能(Horizontal Pod Autoscaling,简称 HPA)。

HPA 与之前的 Deployment、Service 一样,也属于一种 K8S 资源对象。

HPA 的目标是希望通过追踪集群中所有 Pod 的负载变化情况,来自动化地调整 Pod 的副本数,以此来满足应用的需求和减少资源的浪费。

HAP 度量 Pod 负载变化情况的指标有两种:

  • CPU 利用率(CPUUtilizationPercentage)
  • 自定义的度量指标,比如服务在每秒之内的请求数(TPS 或 QPS)

如何统计和查询这些指标,要依托于一个组件——Heapster。Heapster 会监控一段时间内集群内所有 Pod 的 CPU 利用率的平均值或者其他自定义的值,在满足条件时(比如 CPU 使用率超过 80% 或 降低到 10%)会将这些信息反馈给 HPA 控制器,HPA 控制器就根据 RC 或者 Deployment 的定义调整 Pod 的数量。

Horizontal Pod Autoscaling可以根据CPU使用率或应用自定义metrics自动扩展Pod数量(支持replication controller、deployment和replica set)。

  • 控制管理器每隔30s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况
  • 支持三种metrics类型 预定义metrics(比如Pod的CPU)以利用率的方式计算
  • 自定义的Pod metrics,以原始值(raw value)的方式计算
  • 自定义的object metrics
  • 支持两种metrics查询方式:Heapster和自定义的REST API
  • 支持多metrics
  • 参考:

    https://www.geek-share.com/detail/2764841600.html

    https://www.kubernetes.org.cn/horizontal-pod-autoscaling

    • 点赞 1
    • 收藏
    • 分享
    • 文章举报
    21aspnet 博客专家 发布了1595 篇原创文章 · 获赞 1163 · 访问量 1224万+ 他的留言板 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐