Horizontal Pod Autoscaler

水平的,通过监控度量指标来做扩缩容。

HPA 接口类型

  • HPA v1 为稳定版自动水平伸缩,只支持CPU指标。
  • HPA v2beta1版本,支持CPU、内存和自定义指标
  • HPA v2beta2版本,支持CPU、内存、自定义指标和ExternalMetrics(基于公有云提供的指标)

使用HPA前提条件

  • 必须安装metrics-server或者其他自定义的metrics-server,也就是必须有监控采集度量指标的服务。
  • 必须配置 **requests** 参数,.spec.containers.resources.requests
    1. apiVersion: apps/v1
    2. kind: Deployment
    3. metadata:
    4. creationTimestamp: null
    5. labels:
    6. app: hpa-nginx
    7. name: hpa-nginx
    8. spec:
    9. replicas: 1
    10. selector:
    11. matchLabels:
    12. app: hpa-nginx
    13. strategy: {}
    14. template:
    15. metadata:
    16. creationTimestamp: null
    17. labels:
    18. app: hpa-nginx
    19. spec:
    20. containers:
    21. - image: nginx:latest
    22. name: nginx
    23. resources:
    24. requests:
    25. cpu: 10m
    26. status: {}

    给一个deployment 配置 HPA

    #给一个deployment 配置 HPA
    kubectl autoscale deployment hpa-nginx --cpu-percent=10 --min=1 --max=10