1

使用普通 HPA,可以手动将底层部署扩展到零。例如,这是必需的。维护任务。当缩放回一个大于零的值时,缩放会像以前一样继续。这是执行的命令:kubectl scale deployment my-deployment --replicas=0

然而,对于 KEDA,这是不可能的。文档中唯一的地方是:

KEDA 不会强制执行该值,这意味着您可以手动将部署扩展为 0,并且 KEDA 不会对其进行扩展。但是,当 KEDA 本身扩展部署时,它将尊重那里设置的值。

我无法确认这种行为,之前的缩放命令也不起作用。手动将minReplicasandmaxReplicas更改为零会在 keda 日志中引发很多错误,将部署指向假值时也会发生同样的情况。

我需要一种临时缩放到零的方法(删除 ScaledObject 当然可以,但是我需要将它们存储在某个地方,这也容易出错且违反直觉)。这应该与 的值无关minReplicaCount

使用 Kubernetes 1.15、keda 1.5.0。缩放对象示例:

apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata: ... # left out
spec:
  cooldownPeriod: 600
  maxReplicaCount: 8
  minReplicaCount: 0
  pollingInterval: 30
  scaleTargetRef:
    containerName: main
    deploymentName: my-deployment
  scaleType: deployment
  triggers:
  - type: kafka
    ... # left out
status:
  externalMetricNames:
  - lagThreshold
  lastActiveTime: "2020-07-21T11:32:31Z"
4

0 回答 0