设置 Auto Scaling 应用程序
Set up Auto Scaling Apps
是否可以根据工作负载为应用设置自动缩放功能?
我在开发者控制台和文档中都没有发现任何有用的东西。通过 CLI 是否有隐藏的可能性?
只是想知道这是否可行,因为我正在对 Swisscom Application Cloud 进行基本评估。
此功能目前不存在,它也不是(开源)cloudfoundry 平台的一部分。有的平台提供了,但是这个还没有发布到社区!
有几个开源自动缩放项目已准备好用于生产,例如
- https://github.com/cloudfoundry-incubator/app-autoscaler
- https://github.com/cloudfoundry-samples/cf-autoscaler
Pivotal Cloud Foundry 支持开箱即用的应用程序自动扩展 (http://docs.pivotal.io/pivotalcf/1-8/appsman-services/autoscaler/autoscale-configuration.html)
有多种方法可以做到这一点。
正如 Anatoly 所述,您可以明显地使用 "Auto Scaler" 服务,如果这是从您各自的提供商部署的。
(你可以通过调用这个 Feature-Flags-API 检查来解决这个问题:https://apidocs.cloudfoundry.org/253/feature_flags/get_the_app_scaling_feature_flag.html)
另一种选择实际上是根据您必须满足应用程序的自定义缩放行为编写您自己的小型自动缩放器。 (DIY ;))
获取负载
: 首先,您需要获取有关应用程序当前 "load" 的信息(即内存使用情况、cpu 使用情况等)。您可以通过从 v2/apps//stats API 中提取数据轻松地做到这一点。在此处查看详细信息:
https://apidocs.cloudfoundry.org/253/apps/get_detailed_stats_for_a_started_app.html
写一些魔术:
现在您需要编写一些魔法来验证应用程序是否处于高负载状态。可能是 CPU 或内存或您尝试获取我们的统计数据的其他瓶颈 API。
规模up/down:
使用 PUT v2/apps// API,您现在可以通过相应地填充参数 "instances" 轻松更改应用程序的实例数量。
https://apidocs.cloudfoundry.org/253/apps/updating_an_app.html
对于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
是否可以根据工作负载为应用设置自动缩放功能? 我在开发者控制台和文档中都没有发现任何有用的东西。通过 CLI 是否有隐藏的可能性?
只是想知道这是否可行,因为我正在对 Swisscom Application Cloud 进行基本评估。
此功能目前不存在,它也不是(开源)cloudfoundry 平台的一部分。有的平台提供了,但是这个还没有发布到社区!
有几个开源自动缩放项目已准备好用于生产,例如
- https://github.com/cloudfoundry-incubator/app-autoscaler
- https://github.com/cloudfoundry-samples/cf-autoscaler
Pivotal Cloud Foundry 支持开箱即用的应用程序自动扩展 (http://docs.pivotal.io/pivotalcf/1-8/appsman-services/autoscaler/autoscale-configuration.html)
有多种方法可以做到这一点。 正如 Anatoly 所述,您可以明显地使用 "Auto Scaler" 服务,如果这是从您各自的提供商部署的。
(你可以通过调用这个 Feature-Flags-API 检查来解决这个问题:https://apidocs.cloudfoundry.org/253/feature_flags/get_the_app_scaling_feature_flag.html)
另一种选择实际上是根据您必须满足应用程序的自定义缩放行为编写您自己的小型自动缩放器。 (DIY ;))
获取负载 : 首先,您需要获取有关应用程序当前 "load" 的信息(即内存使用情况、cpu 使用情况等)。您可以通过从 v2/apps//stats API 中提取数据轻松地做到这一点。在此处查看详细信息: https://apidocs.cloudfoundry.org/253/apps/get_detailed_stats_for_a_started_app.html
写一些魔术: 现在您需要编写一些魔法来验证应用程序是否处于高负载状态。可能是 CPU 或内存或您尝试获取我们的统计数据的其他瓶颈 API。
规模up/down: 使用 PUT v2/apps// API,您现在可以通过相应地填充参数 "instances" 轻松更改应用程序的实例数量。 https://apidocs.cloudfoundry.org/253/apps/updating_an_app.html
对于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