自动缩放需要更多时间来启动新 pod 并在 google 容器引擎中出现连接错误
Auto-scaling is taking more time to bring up new pod and giving connection error in google container engine
我使用以下命令进行自动缩放。
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 个 pods 之间的时间内收到连接拒绝错误。请让我知道一旦新 pods 超过自动缩放期间给出的 CPU % 限制需要多长时间。另外请让我知道有没有什么方法可以减少这个时间。一旦新 pods 出现,问题不存在。提前致谢
如本 doc 中所述,有两个因素会影响自动缩放器的反应时间:
--horizontal-pod-autoscaler-sync-period
,它定义了自动缩放器检查受控资源状态的频率。默认值为 30 秒。它可以通过控制器管理器的标志进行更改。
upscaleForbiddenWindow
,它定义了自动缩放器可以扩展资源的频率。默认值为 3 分钟。目前无法调整。
根据您粘贴的日志,如果负载稳定,autoscaler 应该会在 CPU 使用率达到 55% 后的 30 秒内做出反应,是这样吗?
我使用以下命令进行自动缩放。
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 个 pods 之间的时间内收到连接拒绝错误。请让我知道一旦新 pods 超过自动缩放期间给出的 CPU % 限制需要多长时间。另外请让我知道有没有什么方法可以减少这个时间。一旦新 pods 出现,问题不存在。提前致谢
如本 doc 中所述,有两个因素会影响自动缩放器的反应时间:
--horizontal-pod-autoscaler-sync-period
,它定义了自动缩放器检查受控资源状态的频率。默认值为 30 秒。它可以通过控制器管理器的标志进行更改。upscaleForbiddenWindow
,它定义了自动缩放器可以扩展资源的频率。默认值为 3 分钟。目前无法调整。
根据您粘贴的日志,如果负载稳定,autoscaler 应该会在 CPU 使用率达到 55% 后的 30 秒内做出反应,是这样吗?