通过kubectl scale
命令可以实现Pod的扩容或缩容。但是如果能够根据当前负载的变化情况自动触发扩容或缩容的行为,也就是实现Pod的智能扩容就更好了。在Kubernetes 1.1中,首次发布新特性Horizontal Pod Autoscaling。在1.2版本中,HPA被升级为稳定版本(apiVersion: autoscaling/v1),同时保留旧版本(apiVersion: extensions/v1beta1)。
Horizontal Pod Autoscaling简称HPA,通过追踪分析RC控制的所有目标Pod的负载变化情况,确定是否需要针对性的调整目标Pod副本数。HPA有两种Pod负载的度量标准:
CPUUtilizationPercentage
应用程序自定义的度量指标,如服务在每秒内的相应的请求数(TPS或QPS)
定义HPA
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
namespace: default
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
kind: Deployment
name: php-apache
targetCPUUtilizationPercentage: 90