【问题标题】:How to use autoscale behaviour in kubernetes?如何在 Kubernetes 中使用自动缩放行为?
【发布时间】:2020-05-12 21:05:01
【问题描述】:

我正在阅读following documentation。我想了解如何使用behavior

可以在行为部分指定一个或多个扩展策略 的规格。当指定多个策略时,哪个策略 允许最大更改量是由 默认。以下示例显示了缩小时的这种行为:

behavior:
  scaleDown:
    policies:
    - type: Pods
      value: 4
      periodSeconds: 60
    - type: Percent
      value: 10
      periodSeconds: 60

当 Pod 数量超过 40 时,将使用第二个策略 用于缩小。例如,如果有 80 个副本和目标 然后在第一步中必须缩小到 10 个副本 8 副本将减少。在下一次迭代中,当数 副本数为 72,10% 的 pod 数为 7.2,但数字四舍五入为 8. 在 autoscaler 控制器的每个循环上,根据当前副本的数量重新计算要更改的 pod 的数量。什么时候 副本数低于 40 第一个策略(Pods)是 应用,一次将减少 4 个副本。 ...

我了解到,当自动缩放器决定缩小时 - 由于规则,它会减少 10% 的副本数量:

- type: Percent
  value: 10
  periodSeconds: 60

但我无法理解第一条规则的含义。你能澄清一下吗?
当我们有这样的配置时,怎么可能有 80 个节点?如果 kubernetes 每次我们有 > 40 个节点时开始减少节点数量,怎么可能有 80 个节点

【问题讨论】:

    标签: kubernetes autoscaling


    【解决方案1】:

    当我们有这样的配置时,怎么可能有 80 个节点?

    该示例(在您所指的文档中)说大约有 80 个 Pod,但这只是一个随机数来说明特定示例。

    如果 kubernetes 在我们有 > 40 个节点时开始减少节点数量,怎么可能有 80 个节点

    不是每次。只有当 Autoscaler 决定缩减时,它才会开始减少 Pod 的数量。

    我了解到,当自动缩放器决定缩小时 - 它会将副本数量减少 10%

    您说得对,文档描述了有 80 个 Pod 的情况,由于负载不足,是时候将集群“缩小”以减少 Pod 数量了。

    但我无法理解第一条规则的含义。你能澄清一下吗?

    让我们再看一遍。

    behavior:
      scaleDown:
        policies:
        - type: Pods
          value: 4
          periodSeconds: 60
        - type: Percent
          value: 10
          periodSeconds: 60
    

    您可以在此处看到两项政策。即Pods和Percent。当指定多个策略时,允许最大更改量的策略是默认选择的策略。

    这就是为什么如果有 80 个 pod 并且系统必须缩减到 10 个,它会检查每个策略可以关闭多少个 pod。

    Pods 允许一次只关闭 4 个 Pod,而 Percent 80Pods*10Percent=8Pods。 Percent 获胜,关闭 8 个 Pod,剩下 72 个 Pod,进程重新开始。

    这次Percent 允许关闭 72*0.1=7.2 个 Pod。仍然大于 4。该值四舍五入为 8。这就是为什么再次关闭 10% 的活着的 Pod。 72-8=64 个豆荚。

    在自动扩缩器控制器的每个循环中,根据当前副本的数量重新计算要更改的 pod 数量。

    所以进度应该是 80 (-8) --> 72 (-8) --> 64 (-7) --> 57 (-6) --> 51 (-6) --> 45 (-5) --> 40

    当副本数低于 40 时,将应用第一个策略 Pods,并且一次将减少 4 个副本。

    Pods 和 Percent 还剩下 40 个 Pod,即将关闭 4 个 Pod。

    剩下 36 个 Pod,10% 是 3.6 个 Pod(四舍五入之前),根据第一条规则,这绝对少于 4 个 Pod。 Pods 获胜,4 个 Pod 关闭。

    进度会像 36 (-4) --> 32 (-4) --> 28... 等等。

    希望对您有所帮助! :)

    【讨论】:

    • 谢谢解释。所以“行为”回答了“如何扩大/缩小规模?”但不决定扩大或缩小规模 - 它提供另一项服务
    • Gstackoverflow,确切地说。它是关于“如何扩展”的。 “何时扩展”完全由另一个设置控制。
    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 2016-09-04
    • 1970-01-01
    • 2017-02-12
    • 2019-08-07
    • 2018-12-13
    • 2021-04-07
    • 2020-11-25
    相关资源
    最近更新 更多