我正在使用使用kubernetes 1.2版的openshift v3。我正在探索更多关于自动缩放功能的内容 目前它说只支持CPU指标。
有没有办法根据内存或从heapster收集的其他指标数据来扩展openshift中的pod?
答案 0 :(得分:0)
正如您所提到的:OpenShift v3正在使用Kubernetes的多个组件。 Kubernetes和openshift的官方文档 正在谈论CPU上的自动缩放。 (Kubernetes 1.2基于特定于应用程序的指标(如QPS)增加了对缩放的alpha支持。
在初始版本的水平pod自动缩放中未释放内存上的自动缩放,因为它无法以正确的方式工作。 pod的内存消耗通常不会缩小,因此,添加新pod不会降低旧pod的内存消耗。
这就是为什么Kubernetes目前不支持对内存使用情况进行自动缩放的原因。 他们正在谈论它作为一个可能的特征:
[future]基于与CPU不同的指标(例如内存,网络流量,qps)的自动缩放窗格。这包括基于自定义/应用程序指标进行扩展。
答案 1 :(得分:0)
或从堆垛机收集的其他指标数据
从announcements of Kubernetes 1.12开始,这应该现在(2018年第四季度)受支持(尽管仍处于Beta版)。
Horizontal Pod Autoscaler中的任意/自定义指标正在移至第二个Beta(
autoscaling/v2beta2
),以测试一些其他功能增强。 重新设计的Horizontal Pod Autoscaler功能包括对自定义指标和状态条件的支持。
请参见kubernetes feature 117和commit 9d84a49,以及新的Horizontal Pod Autoscaler Walkthrough页面更新。
它介绍了标签的概念。
根据更具体的指标自动缩放
许多度量标准管道允许您按名称或一组称为标签的附加描述符来描述度量标准。 对于所有非资源度量标准类型(pod,对象和外部度量标准,如下所述),您可以指定一个附加的标签选择器,该选择器将传递到度量标准管道。
例如,如果您使用动词
http_requests
收集指标label
,则可以指定以下指标块以仅在GET
个请求:type: Object object: metric: name: `http_requests` selector: `verb=GET`
此选择器使用与完整Kubernetes标签选择器相同的语法。 如果名称和选择器匹配多个序列,则监视管道确定如何将多个序列折叠为单个值。
选择器是加性的,不能选择描述非目标对象的指标(对于Pods类型,则为目标容器;对于Object类型,则为所描述的对象)。