《Kubernetes设计与实现》HPA(未完待续)

99封情书 提交于 2020-08-16 06:54:50

HPA(Horizontal Pod Autoscaler)是基于监控指标自动调整Pod数量的机制。

在实现层面HPA由两部分组成:

  • 一个API
  • 一个控制器

API用于制定规则,控制器用于执行规则。

规则

参数配置

kube-controller-manager

  • --horizontal-pod-autoscaler-sync-period:检查周期(默认为15s)
  • --horizontal-pod-autoscaler-tolerance:容忍阀值 (默认为0.1)
  • --horizontal-pod-autoscaler-initial-readiness-delay:初始化时间,用于延迟采样(因为从技术上无法判断Pod是否就绪,只能预测一个时间),默认为30s
  • --horizontal-pod-autoscaler-cpu-initialization-period:专用于CPU的延迟采样时间,默认5min(需进一步确认)
  • --horizontal-pod-autoscaler-downscale-stabilization:缩容冷却时间,多久执行一次缩容,默认是5分钟,避免频繁扩缩
  • --horizontal-pod-autoscaler-use-rest-clients:使用第三方metrics

API对象

版本:

  • autoscaling/v1 只支持基于CPU使用率的扩缩容。
  • autoscaling/v2beta2:支持基于内存和自定义监控指标

kubectl

kubectl get hpa kubectl delete hpa kubectl describe hpa kubectl autoscale rs foo --min=2 --max=5 --cpu-percent=80

设计思考

  • 为什么HPA只能应用于支持弹性伸缩的对象,而不是Pod、DaemonSets?

参考资料

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!