问题描述
我需要在 Kubernetes 上运行可突增的工作负载,这真的很难估计资源和限制。我目前仅使用 Horizontal Pod Autoscaler,因此我根据每小时计划作业的需求增加增加了副本数量。我目前也将内存请求和限制设置为打开,并且自动缩放仅基于 cpu。问题是让 pod 的内存限制保持开放会导致高 pod 驱逐率。我想知道我是否可以使用 Vertical Pod Autoscaler 来推荐 Pod 的资源分配并保持两个创建的 Horizontal Pod Autoscaler 对象同时运行。我在文档中找到的唯一参考是有一个名为 Multidimensional Pod autoscaling 的对象,但它仅适用于 1.19+ 版本。
解决方法
好吧,此时多维 Pod 自动缩放似乎只是一个 GKE (preview) feature。 当您喜欢同时使用 VPA 和 HPA 时,您只能使用 HPA 和自定义指标来执行此操作,正如 docs 中所述:
已知限制
...
- 垂直 Pod Autoscaler 不应与
此时 CPU 或内存上的 Horizontal Pod Autoscaler (HPA)。
但是,您可以将 VPA 与 HPA 结合用于自定义和外部指标。
...