【发布时间】:2017-07-31 12:17:11
【问题描述】:
是否可以根据工作负载为应用设置自动缩放功能? 我在开发者控制台和文档中都没有发现任何有用的东西。通过 CLI 是否可能存在隐藏的可能性?
只是想知道这是否可能,因为我正在对 Swisscom Application Cloud 进行基本评估。
【问题讨论】:
是否可以根据工作负载为应用设置自动缩放功能? 我在开发者控制台和文档中都没有发现任何有用的东西。通过 CLI 是否可能存在隐藏的可能性?
只是想知道这是否可能,因为我正在对 Swisscom Application Cloud 进行基本评估。
【问题讨论】:
对于 PCF,您可以查看此https://github.com/Pivotal-Field-Engineering/autoscaling-cli-plugin。它应该给你你正在寻找的东西。
您需要通过
安装它cf install-plugin https://github.com/pivotal-cf-experimental/autoscaling-cli-plugin
并使用类似于以下的步骤进行配置
从您的市场获取自动缩放器的详细信息cf m | grep app-autoscaler
使用上面的服务和计划安装自动缩放器插件
cf create-service <service> <plan> myAutoScaler
将服务绑定到您的应用程序(或者您可以通过部署清单执行此操作)
cf bind-service myApp myAutoScaler
配置缩放参数
cf configure-autoscaling --min-threshold ## --max-threshold ## --max-instances # --min-instances # myApp myAutoScaler
【讨论】:
有多种方法可以做到这一点。 如 Anatoly 所述,您可以明显地使用“Auto Scaler”服务,前提是该服务是从您各自的提供商部署的。
(你可以通过调用这个 Feature-Flags-API 检查来解决这个问题:https://apidocs.cloudfoundry.org/253/feature_flags/get_the_app_scaling_feature_flag.html)
另一个选项实际上是根据您必须满足您的应用程序的自定义缩放行为编写您自己的小型自动缩放器。 (DIY ;))
获取负载 :首先,您需要获取有关应用程序当前“负载”的信息(即内存使用情况、cpu 使用情况等)。您可以通过从 v2/apps//stats API 中提取数据轻松做到这一点。在此处查看详细信息: https://apidocs.cloudfoundry.org/253/apps/get_detailed_stats_for_a_started_app.html
写一些魔法: 现在您需要编写一些魔术来验证应用程序是否处于高负载状态。可能是 CPU 或内存或您尝试获取我们的统计 API 的其他瓶颈。
放大/缩小: 使用 PUT v2/apps// API,您现在可以通过相应地填写参数“instances”轻松更改应用程序的实例数量。 https://apidocs.cloudfoundry.org/253/apps/updating_an_app.html
【讨论】:
有几个开源自动缩放项目,可用于生产用途,例如
Pivotal Cloud Foundry 支持开箱即用的应用程序自动扩展 (http://docs.pivotal.io/pivotalcf/1-8/appsman-services/autoscaler/autoscale-configuration.html)
【讨论】:
此功能目前不存在,也不是(开源)cloudfoundry 平台的一部分。部分平台提供,但尚未发布到社区!
【讨论】: