【发布时间】:2016-12-18 03:32:02
【问题描述】:
我正在使用使用 kubernetes 1.2 版的 openshift v3。我正在探索有关自动缩放功能的更多信息。
目前它说只支持 CPU 指标。
是否可以根据从 heapster 收集的内存或其他指标数据来扩展 openshift 中的 pod?
【问题讨论】:
标签: kubernetes openshift-origin openshift-enterprise
我正在使用使用 kubernetes 1.2 版的 openshift v3。我正在探索有关自动缩放功能的更多信息。
目前它说只支持 CPU 指标。
是否可以根据从 heapster 收集的内存或其他指标数据来扩展 openshift 中的 pod?
【问题讨论】:
标签: kubernetes openshift-origin openshift-enterprise
正如您所提到的:OpenShift v3 使用了 Kubernetes 的多个组件。 Kubernetes和openshift的官方文档 正在谈论 CPU 上的自动缩放。 (Kubernetes 1.2 增加了对基于应用程序特定指标(如 QPS)的扩展的 alpha 支持)。
在水平 pod 自动缩放的初始版本中没有发布内存自动缩放,因为它不能以正确的方式工作。 Pod 的内存消耗通常不会减少,因此添加新 Pod 不会减少旧 Pod 的内存消耗。
这就是 Kubernetes 目前不支持内存使用自动缩放的原因。 他们正在谈论它作为一个可能的功能:
[未来] 基于不同于 CPU 的指标(例如内存、网络流量、qps)自动缩放 Pod。这包括基于自定义/应用程序指标的扩展。
【讨论】:
或从 heapster 收集的其他指标数据
从announcements of Kubernetes 1.12 开始,现在(2018 年第四季度)应该会支持此功能(尽管仍处于测试阶段)。
Horizontal Pod Autoscaler 中的任意/自定义指标 正在迁移到第二个测试版 (
autoscaling/v2beta2) 以测试一些额外的功能增强。 这种重新设计的 Horizontal Pod Autoscaler 功能包括对自定义指标和状态条件的支持。
查看kubernetes feature 117 和commit 9d84a49,以及新的Horizontal Pod Autoscaler Walkthrough 页面更新。
它引入了标签的概念。
根据更具体的指标自动扩缩
许多指标管道允许您通过名称或一组称为标签的附加描述符来描述指标。 对于所有非资源指标类型(pod、对象和外部,如下所述),您可以指定一个额外的标签选择器,该选择器将传递到您的指标管道。
例如,如果您使用动词
label收集指标http_requests,则可以指定以下指标块以仅在GET请求时进行缩放:type: Object object: metric: name: `http_requests` selector: `verb=GET`此选择器使用与完整 Kubernetes 标签选择器相同的语法。 如果名称和选择器匹配多个系列,则监控管道确定如何将多个系列折叠成一个值。
选择器是加法的,不能选择描述非目标对象的指标(Pods类型的情况下是目标pod,Object类型的情况下是描述的对象)。
【讨论】: