【问题标题】:How to prevent Kubernetes horizontal auto-scaler from scaling down?如何防止 Kubernetes 水平自动扩缩器缩容?
【发布时间】:2019-11-16 02:49:39
【问题描述】:

我创建了一个基于 cpu 使用情况的水平自动缩放器,它工作正常。我想知道如何配置自动缩放器,使其只放大而不缩小?我想要这样的事情的原因是,当我有高负载/请求时,我创建了一些操作符,但我想让它们保持活力,即使在一段时间内它们不做任何事情,但自动缩放器会杀死 pod 并缩小到如果没有负载,则在某个时间后的最小副本数。

我的自动缩放器:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: gateway
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: gateway
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 20

编辑: 操作员是指在 pod 中运行的小型应用程序/程序。

【问题讨论】:

  • 运营商是什么意思?它是为有状态容器执行后处理步骤的框架吗?
  • 您为什么不简单地将 pod 的最小数量锁定在您希望拥有的值?如果您的 targetCpu 为 20,您可能会遇到另一个问题......您可能希望使用另一个值作为放大目标......
  • 我编辑了我的问题并添加了我所说的操作员的意思。 @night-gold 我不想保留资源,我只想在需要时进行扩展,但我想让那些在扩展 pod 中运行的小程序保持活力,以防我再次需要它们,比如 10-20分钟。我发现了这些标志:--horizontal-pod-autoscaler-downscale-stabilization--horizontal-pod-autoscaler-downscale-delay,我认为它们有助于解决我的问题。那 20 只用于测试和基准测试,而不是用于生产。

标签: kubernetes autoscaling kubernetes-pod


【解决方案1】:

您可以按照in docs 的描述将--horizontal-pod-autoscaler-downscale-stabilization 标志添加到kube-controller-manager。默认延迟设置为 5 分钟。

在 master 节点上添加标志到 kube-controller-manager edit /etc/kubernetes/manifests/kube-controller-manager.yaml,pod 将被重新创建。

【讨论】:

    猜你喜欢
    • 2019-08-29
    • 2016-09-05
    • 2021-06-03
    • 2015-04-29
    • 2018-05-13
    • 2020-10-20
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多