一、简介

HPA(Horizontal Pod Autoscaler)是kubernetes的一种资源对象,能够根据某些指标对在statefulSet、

replicaController、replicaSet等集合中的pod数量进行动态伸缩,使运行在上面的服务对指标的变化有一

定的自适应能力。

二、HPA示例

​2.1.yaml文件frontend-hpa.yaml​

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: frontend
namespace: default
spec:
maxReplicas: 5
minReplicas: 1
scaleTargetRef:
kind: Deployment
name: frontend
targetCPUUtilizationPercentage: 85

​2.2.解释​

该HPA控制一个名为frontend的Deployment里的Pod副本,当这些Pod副本的

targetCPUUtilizationPercentage值超过85%时会触发自动动态扩容行为,在扩容和缩容时必须满足的约

束条件是Pod的副本数为1~5

​2.2.用命令创建HPA资源对象​

kubectl autoscale deployment frontend --cpu-percent=90 --min=1 --max=10

三、HPA数据通信流

hpa -> apiserver -> metrics-server -> kubelet -> pod