是否有已知的方法来确定自动缩放阈值?

Posted

技术标签:

【中文标题】是否有已知的方法来确定自动缩放阈值?【英文标题】:Is there a known method to decide auto scaling threshold value? 【发布时间】:2020-12-19 06:07:04 【问题描述】:

是否有已知的方法/关键字/主题来解决如何确定自动缩放阈值?

下面以 K8s HPA 为例,我只知道我可以安装一些监控工具,然后通过肉眼查看图表上显示的内存使用情况,以确定合适的阈值 100Mi。但是为什么不设置99Mi,为什么不设置101Mi呢?我觉得这个方法太手动了

  - type: Resource
    resource:
      name: memory
      target:
        type: AverageValue
        averageValue: 100Mi

由于我没有精通计算机科学,所以我想问一下

有解决这类问题的已知方法吗?

或者什么样的课程可以解决这个问题?

或者从学术文章中搜索的关键字是什么?

【问题讨论】:

【参考方案1】:

要在没有任何图表的情况下显示此信息,您可以使用metrics server。在集群中运行它可以通过kubectl top 命令获取节点和单个 pod 的使用情况。

这是我正在检查节点资源的示例:

➜  ~ kubectl top node
NAME       CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
minikube   580m         28%    1391Mi          75%   

对于 pod:

➜  ~ kubectl top pod
NAME        CPU(cores)   MEMORY(bytes)   
front-end   0m           28Mi 

您还可以使用 --containers 选项查看单个容器而不是 pod 的资源使用情况。

我假设如果您使用 HPA,您已经安装了它,但值得知道的是,如果您使用 minikube,您可以轻松地启用 metrics serverminikube addons enable metrics-server。如果你使用 kubeadm 引导你的服务器,那么你必须 install 它并配置它的所有 requirements 才能正确运行。

最后,您可以随时使用exec 手动检查您的 pod 使用情况:

kubectl exec -it <name_of_the_pod>  top

您可以here 了解有关自动缩放器的更多产品信息。

【讨论】:

以上是关于是否有已知的方法来确定自动缩放阈值?的主要内容,如果未能解决你的问题,请参考以下文章

灰度图像的自动阈值分割(Otsu 法)(转载)

从橙色动态检测红色的阈值方法

函数pygame.mask.from_threshold()用阈值确定mask碰撞点原理及使用方法

函数pygame.mask.from_threshold()用阈值确定mask碰撞点原理及使用方法

函数pygame.mask.from_threshold()用阈值确定mask碰撞点原理及使用方法

获取计算的直方图bin阈值