Kubernetes自动缩放器目标CPU利用率百分比

26

我正在使用Kubernetes和GCE定义此自动缩放程序,想知道targetCPUUtilizationPercentage应该指定什么。这个目标指向的是什么?它是我的集群中的总CPU吗?当此自动缩放程序中引用的Pod消耗大于targetCPUUtilizationPercentage时会发生什么?


我认为这是每个节点的targetCPUUtilizationPercentage。这也包括该节点中pod的CPU。 - Lakshman Diwaakar
有人可以评论一下如果将targetCPUUtilizationPercentage设置为200会发生什么吗?如果请求为100m,这意味着只有在达到200m的CPU使用率后才会开始自动缩放? - Arunas Bartisius
3个回答

29

CPU 利用率是部署中所有 Pod 在过去一分钟内的平均 CPU 使用率除以此部署所请求的 CPU。如果 Pod 的 CPU 利用率平均值高于您定义的目标,则会相应地调整副本。

您可以在这里阅读更多关于此主题的信息。


资源不可用。您能否更新链接? - abhishek627
嗨,如果我已将我的resources.requests.cpu定义为100m,并在hpa中将targetCPUUtilizationPercentage定义为50%。这是否意味着它将在0.5 *(100) CPU利用率时自动缩放。 - abhishek627
@abhishek627 我更新了链接。我已经有一段时间没有使用 Kubernetes 了,恐怕无法帮助你回答问题,抱歉。 - Jan P
@abhishek627 “你好,如果我已经将我的resources.requests.cpu定义为100m,并且在hpa中将targetCPUUtilizationPercentage定义为50%。这是否意味着它将在0.5 *(100)的CPU利用率时自动扩展。” 是的。 - Matt Welke
1
主题链接似乎已经移动到这里 - ibram

19

这是所有Pod的平均CPU利用率,因此如果您在资源请求中将请求的CPU设置为200,并将targetCPUUtilizationPercentage设置为80%,那么在阈值160处,它将扩展Pod。它将创建一个新的副本。


2
"...所以如果您将CPU设置为200...", 这是指Pod的资源limitsrequests吗? - Justin Reusnow
8
"requests",而不是"limits"。 - bug11

1
autoscaling/v2开始,不再支持targetCPUUtilizationPercentage。相反,您可以使用metrics数组。 以下是一个示例,可以替换targetCPUUtilizationPercentage以达到相同的效果:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: my-deployment-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-deployment
  minReplicas: 1
  maxReplicas: 10
  # Define metrics array for CPU utilization
  metrics:
  - type: Resource
    resource:
      name: cpu
    target:
      type: Utilization
      averageUtilization: 50

除了CPU之外,在Kubernetes中还有许多其他指标可以用来扩展HorizontalPodAutoscaler。更多信息请参阅:https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接