Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes HPA-如何避免因CPU利用率高峰而扩大规模_Kubernetes_Horizontal Pod Autoscaling - Fatal编程技术网

Kubernetes HPA-如何避免因CPU利用率高峰而扩大规模

Kubernetes HPA-如何避免因CPU利用率高峰而扩大规模,kubernetes,horizontal-pod-autoscaling,Kubernetes,Horizontal Pod Autoscaling,HPA-如何避免CPU利用率峰值(非启动时)的放大 当为不同国家/地区加载业务配置时,CPU负载会增加1分钟,但我们希望避免在这1分钟内扩大 在pic下面,CurrentMetricValue只是矩阵中的当前值,或者是从上次轮询到当前轮询持续时间的平均值——水平-pod autoscaler同步周期 默认的HPA检查间隔为30秒。如您所述,可以通过更改控制器管理器的标志--水平吊舱自动缩放同步周期的值来配置 水平吊舱自动缩放器作为一个控制回路实现,其周期由控制器管理器的--Horizontal

HPA-如何避免CPU利用率峰值(非启动时)的放大 当为不同国家/地区加载业务配置时,CPU负载会增加1分钟,但我们希望避免在这1分钟内扩大

在pic下面,CurrentMetricValue只是矩阵中的当前值,或者是从上次轮询到当前轮询持续时间的平均值——水平-pod autoscaler同步周期


默认的HPA检查间隔为30秒。如您所述,可以通过更改控制器管理器的标志
--水平吊舱自动缩放同步周期
的值来配置

水平吊舱自动缩放器作为一个控制回路实现,其周期由控制器管理器的--Horizontal Pod Autoscaler sync period标志控制

在每个期间,controller manager根据每个HorizontalPodAutoscaler定义中指定的指标查询资源利用率。控制器管理器从资源度量API(针对每吊舱资源度量)或自定义度量API(针对所有其他度量)获取度量

为了在kube控制器管理器中更改/添加标志,您应该可以访问主节点上的
/etc/kubernetes/manifests/
目录,并能够修改
/etc/kubernetes/manifests/kube控制器管理器.yam
l中的参数

注意:您不能在GKE、EKS和其他托管集群上执行此操作

更重要的是,我建议增加
--水平吊舱自动秤降刻度稳定
(替代
--水平吊舱自动秤升刻度延迟

如果您担心长时间停机,我建议您设置一个自定义指标(如果网络在上一次
${duration}
中停机,则为1,否则为0),并将指标的目标值设置为1(除了基于CPU的自动缩放)。这样:

如果网络在上一次
${duration}
中关闭,则基于自定义度量的建议将等于部署的当前大小。此建议和极低CPU建议的最大值将等于部署的当前大小。在连接恢复之前(由于缩放稳定窗口的原因,恢复后几分钟),不会进行缩放

如果网络可用,则基于度量的建议将为0。CPU建议的最大值将等于CPU建议值,autoscaler将正常运行。 我认为这比限制自动缩放步骤的大小更好地解决了您的问题。限制自动缩放步骤的大小只会降低POD数量减少的速度,因此更长的网络中断时间仍会导致部署缩减到允许的最小大小

也可以使用基于内存的缩放

由于无法在Kubernetes中创建基于内存的hpa,因此编写了一个脚本来实现同样的功能。单击此链接,您可以在此处找到我们的脚本:

https://github.com/powerupcloud/kubernetes-1/blob/master/memory-based-autoscaling.sh
克隆存储库:

https://github.com/powerupcloud/kubernetes-1.git
然后转到Kubernetes目录。执行help命令以获取说明:

./memory-based-autoscaling.sh --help

<>请在这里多读一点:

谢谢你,如果它有帮助的话,你能考虑一下投票和接受我的答案吗?我将对未来的社区有所帮助。根据官方文件,水平吊舱自动缩放同步周期是15秒而不是30秒