Horizontal Pod Autoscaler(HPA)目标CPU百分比基准值确认
HPA CPU利用率基准值问题解答
应用部署与服务清单
apiVersion: apps/v1 kind: Deployment metadata: name: hpa-demo-deployment labels: app: hpa-nginx spec: replicas: 1 selector: matchLabels: app: hpa-nginx template: metadata: labels: app: hpa-nginx spec: containers: - name: hpa-nginx image: stacksimplify/kubenginx:1.0.0 ports: - containerPort: 80 resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "500Mi" cpu: "200m" --- apiVersion: v1 kind: Service metadata: name: hpa-demo-service-nginx labels: app: hpa-nginx spec: type: LoadBalancer selector: app: hpa-nginx ports: - port: 80 targetPort: 80
HPA配置清单
apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: hpa-demo-declarative spec: maxReplicas: 10 # define max replica count minReplicas: 1 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: hpa-demo-deployment targetCPUUtilizationPercentage: 20 # target CPU utilization
问题解答
HPA配置中的20%目标CPU利用率,基准是容器定义的requests.cpu(即100m),而非limits.cpu或其他数值。
autoscaling/v1版本的HPA计算CPU使用率时,会拿Pod的实际CPU使用量除以容器的CPU requests值,将得到的百分比与targetCPUUtilizationPercentage对比。比如你当前的配置,当Pod实际CPU使用量达到100m的20%(也就是20m)时,HPA会触发扩容逻辑;反之如果使用率持续低于该值,则会触发缩容。
内容的提问来源于stack exchange,提问作者Mohamed
相关产品推荐
相关产品推荐

