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



VPA的文档指出HPA和VPA不应一起使用。仅当您想要扩展自定义指标时,它才能用于 gethere。

我在 CPU 上启用了缩放。

我的问题是,我可以为某些部署(假设A(启用 HPA,为某些部署(假设 B(启用 VPA。或者这也会导致错误。

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

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

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

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

对于您可以指定使用HPAapp2

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 自动缩放器不应与水平 此时CPU 或内存上的 Pod 自动缩放器 (HPA(">

相关内容

  • 没有找到相关文章

最新更新