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

Lak*_*kar 6 autoscaling google-compute-engine google-cloud-platform

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

这个问题是另一个问题答案的一部分,它是关于构建一个自动调整和负载均衡的后端.

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

Lak*_*kar 17

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

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

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

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

托管实例组有助于保留一组基于单个实例模板的同类实例.假设实例模板为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
Run Code Online (Sandbox Code Playgroud)

上面的命令基于sample-template创建一个托管实例组,该实例组包含位于asia-northeast1区域的三个不同区域中的3个计算引擎.

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

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

  • 平均CPU利用率

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

  • Stackdriver标准和自定义指标

  • 更多

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

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
Run Code Online (Sandbox Code Playgroud)

上述命令根据CPU利用率设置自动调节器,范围从2(如果没有流量)到6(在流量大的情况下).

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

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

这是关于构建自动调整和负载平衡后端的3部分系列的第2 部分.