自动缩放需要花费更多时间来启动新Pod,并在Google容器引擎中给出连接错误

Pri*_*tha 6 kubernetes google-kubernetes-engine google-container-registry

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

kubectl autoscale deployment catch-node --cpu-percent=50 --min=1 --max=10
Run Code Online (Sandbox Code Playgroud)

在我的情况下,负载测试中自动缩放的状态如下。

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)

在这里,我在自动缩放时从1个容器过渡到4个容器之间的时间中拒绝连接错误。请让我知道一旦超过自动缩放过程中给定的CPU%限制,将需要多少时间来启动新的Pod。还请让我知道是否有任何方法可以减少这段时间。一旦所有新Pod出现,问题是不在那里 。提前致谢

cae*_*hao 3

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

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

  2. upscaleForbiddenWindow,它定义自动缩放器扩展资源的频率。默认值为 3 分钟。目前无法调整。

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