繁体   English   中英

kubernetes 部署 A 的 HPA 和部署 B 的 VPA

[英]kubernetes HPA for deployment A and VPA for deployment B

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

我在 CPU 上启用了缩放。

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

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

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

因此,对于使用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 或 Memory 来确定文档中所述的目标,则可以一起使用 VPA 和 HPA:

“目前,垂直 Pod Autoscaler不应与CPU 或 memory 上的 Horizontal Pod Autoscaler (HPA) 一起使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM