6

我使用以下命令进行自动缩放。

kubectl autoscale deployment catch-node --cpu-percent=50 --min=1 --max=10

在我的负载测试案例中,自动缩放的状态如下所示。

第 27 分钟

NAME         REFERENCE                     TARGET    CURRENT   MINPODS   MAXPODS   AGE
catch-node   Deployment/catch-node/scale   50%       20%      1         10        27m

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
catch-node   1         1         1            1           27m

第 29 分钟

NAME         REFERENCE                     TARGET    CURRENT   MINPODS   MAXPODS   AGE
catch-node   Deployment/catch-node/scale   50%       35%      1         10        29m

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
catch-node   1         1         1            1           29m

第 31 分钟

NAME         REFERENCE                     TARGET    CURRENT   MINPODS   MAXPODS   AGE
catch-node   Deployment/catch-node/scale   50%       55%      1         10        31m

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
catch-node   1         1         1            1           31m

第 34 分钟

NAME         REFERENCE                     TARGET    CURRENT   MINPODS   MAXPODS   AGE
catch-node   Deployment/catch-node/scale   50%       190%      1         10        34m

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
catch-node   4         4         4            4           34m

在这里,我在自动缩放时从 1 个 pod 过渡到 4 个 pod 之间出现连接拒绝错误。请让我知道一旦超过自动缩放期间给出的 CPU % 限制,启动新 pod 需要多长时间。另外请告诉我是否有任何方法可以减少这个时间。一旦所有新 pod 出现,问题是不在那里 。提前致谢

4

1 回答 1

3

如本文档所述,有两个因素会影响自动缩放器的反应时间:

  1. --horizontal-pod-autoscaler-sync-period,它定义了自动缩放器检查受控资源状态的频率。默认值为 30 秒。它可以通过控制器管理器的标志进行更改。

  2. upscaleForbiddenWindow,它定义了自动缩放器可以扩展资源的频率。默认值为 3 分钟。目前它是不可调节的。

根据你贴的日志,如果负载稳定,自动缩放器应该在 CPU 使用率达到 55% 后 30 秒内反应,是这样吗?

于 2016-05-08T21:26:07.013 回答