如何在Google Cloud Platform中配置托管实例组和自动扩展

时间:2017-01-09 05:52:56

标签: google-cloud-platform google-compute-engine autoscaling

自动缩放可帮助您根据负载自动添加或删除计算引擎。在GCP中自动扩展的先决条件是实例模板和托管实例组。

这个问题是另一个question's answer的一部分,它是关于构建一个自动缩放和负载均衡的后端。

我写了下面的答案,其中包含在GCP中设置自动缩放的步骤。

1 个答案:

答案 0 :(得分:16)

自动缩放是GCP中托管实例组的一项功能。这有助于通过扩展实例来处理非常高的流量,同时它还可以在没有流量时缩小实例,从而节省了大量资金。

要设置自动缩放,我们需要以下内容:

  • 实例模板
  • 托管实例组
  • 自动调整策略
  • 健康检查

实例模板是一个蓝图,用于定义将在自动调整的托管实例组中运行的同类实例的计算机类型,映像和磁盘。我已经编写了设置实例模板here的步骤。

托管实例组有助于保留一组基于单个实例模板的同类实例。假设实例模板为 sample-template 。这可以通过在gcloud中运行以下命令来设置:

gcloud compute instance-groups managed \
create autoscale-managed-instance-group \
--base-instance-name autoscaled-instance \
--size 3 \
--template sample-template \
--region asia-northeast1

上述命令根据示例模板创建一个托管实例组,其中包含位于asia-northeast1区域的三个不同区域中的3个计算引擎。

  • base-instance-name 将是所有自动创建的实例的基本名称。除了基本名称之外,每个实例名称都将附加一个唯一生成的随机字符串。
  • 大小表示组中所需的实例数。截至目前,无论应用程序生成的流量多少,都会一直运行3个实例。稍后,可以通过将策略应用于此组来进行自动调整。
  • 区域(多区域)或单区域:可以在区域(多区域)中设置托管实例组,即均匀实例将均匀分布在所有区域中给定区域或所有实例可以部署在区域内的同一区域中。它也可以部署为跨区域1,目前处于alpha状态。

自动调节策略确定自动调节器行为。自动缩放器聚合来自实例的数据,并将其与策略中指定的所需容量进行比较,并确定要采取的操作。有许多自动缩放策略,如:

  • 平均CPU利用率

  • HTTP负载平衡服务容量(请求/秒)

  • Stackdriver标准和自定义指标

  • many more

现在,通过在gcloud中运行以下命令,将自动扩展引入此托管实例组:

gcloud compute instance-groups managed \
set-autoscaling \
autoscale-managed-instance-group \
--max-num-replicas 6 \
--min-num-replicas 2 \
--target-cpu-utilization 0.60 \
--cool-down-period 120 \
--region asia-northeast1

以上命令根据 CPU利用率设置自动扩展器,范围从 2 (如果没有流量)到 6 (以防万一)交通繁忙。)

  • cool-down-period 标志指定在关联的自动规划器开始从中收集信息之前启动实例后等待的秒数。
  • 自动缩放器最多可与 5个不同的政策相关联。如果有多个策略,Autoscaler会建议保留最大实例数的策略。
  • 有趣的事实:当自动调节器启动实例时,无论流量如何,它都会确保实例运行至少10分钟。这样做是因为GCP为计算引擎记录了至少十分钟的运行时间。它还可以防止不稳定的旋转和关闭实例。

最佳做法:从我的角度来看,最好使用安装的所有软件创建自定义映像,而不是使用启动脚本。由于在自动扩展组中启动新实例所需的时间应尽可能最短。这将提高您扩展Web应用程序的速度。

3-part series第2部分关于构建自动调整和负载均衡的后端。