0

VPA 的文档指出 HPA 和 VPA 不应该一起使用。它只能用于在您想要扩展自定义指标时进行聚合。

我在 CPU 上启用了缩放。

我的问题是我可以为某些部署启用 HPA(比如说 A)并为某些部署启用 VPA(比如说 B)。或者这也会导致错误。

4

1 回答 1

1

不建议同时使用它们,因为如果它们都检测到需要内存,他们可能想尝试同时解决相同的问题,这将导致资源分配错误。

这不是可以在应用程序部署级别指定的内容,但您可以指定应该使用哪个部署HPAVPA进行扩展targetRef

因此,对于您的部署,app1您可以指定VPA

apiVersion: autoscaling.k8s.io/v1beta2
kind: VerticalPodAutoscaler
metadata:
  name: app1-vpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: app1

对于app2您可以指定使用HPA

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: app2-hpa 
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: app2

如果需要在相同的部署中同时使用 HPA 和 VPA,您只需确保他们的行为基于不同的指标。这样,您可以通过按相同事件进行缩放来防止它们。总结一下,如果 HPA 配置不使用 CPU 或内存来确定其目标,如文档中所述,则 VPA 和 HPA 可以一起使用:

“目前,垂直 Pod Autoscaler不应与 CPU 或内存上的Horizo​​ntal Pod Autoscaler (HPA) 一起使用”

于 2020-06-08T07:52:13.080 回答