自动扩缩实例组

托管实例组提供的自动扩缩功能可让您根据负载的增减自动在托管实例组中添加或删除实例。自动扩缩可帮助您的应用顺利应对流量增加的情况,并在资源需求量减少时降低费用。您只需定义自动扩缩政策,自动扩缩程序即可根据测量到的负载执行自动扩缩。

自动扩缩的工作原理是,当有更多负载时,该功能会向您的实例组中添加更多实例(扩充),而在实例需求量减少时,该功能会删除实例(缩减)。

基础知识

自动扩缩功能使用以下基础概念和服务。

托管实例组

自动扩缩是托管实例组的一项功能。托管实例组是根据共通实例模板创建的同构实例池。自动扩缩程序可以在托管实例组中添加或删除实例。虽然 Compute Engine 同时提供托管实例组和非托管实例组,但只有托管实例组可以使用自动扩缩程序进行扩缩。

要了解托管实例组和非托管实例组之间的差异,请参阅实例组文档。

自动扩缩政策和目标利用率

要创建自动扩缩程序,您必须指定自动扩缩政策和目标利用率水平,以供自动扩缩程序用于确定何时需要扩缩实例组。您可以选择使用以下政策进行扩缩:

  • 平均 CPU 利用率
  • HTTP 负载平衡服务容量,可能基于利用率或每秒请求次数
  • Stackdriver Monitoring 指标

自动扩缩程序将根据政策收集信息,将这些信息与您期望的目标利用率进行比较,然后确定是否需要执行扩缩。

目标利用率水平是指您希望将虚拟机实例数量维持在哪个水平。例如,如果要根据 CPU 利用率进行扩缩,则可以将目标利用率水平设置为 75%,这样自动扩缩程序会将所指定实例组的 CPU 利用率维持在 75% 或接近 75% 的水平。根据自动扩缩政策,每个指标的利用率水平的解释方式各不相同。

如需了解每个政策的简要总结,请参阅概览中的自动扩缩政策。如需查看每个政策的详细讨论,请参阅:

规范

  • 自动扩缩功能仅适用于托管实例组。不支持非托管实例组。
  • 不要将 Compute Engine 自动扩缩功能用于 Google Kubernetes Engine 拥有的托管实例组。对于 Google Kubernetes Engine 实例组,请改用集群自动扩缩

    如果不确定您的实例组是否属于 Google Kubernetes Engine 集群,请在托管实例组名中查找 gke 前缀。例如 gke-test-1-3-default-pool-eadji9ah

  • 自动扩缩程序可以根据多个指标做出扩缩决策,但只能为每种类型的指标处理一项政策(Stackdriver Monitoring 指标属于例外情况);对于 Stackdriver Monitoring 指标,自动扩缩程序最多可以处理五项政策。自动扩缩程序会计算每项政策的建议虚拟机数量,然后根据在实例组中提供的虚拟机数量最多的政策来扩缩实例组。

准备工作

  1. 了解托管实例组

    自动扩缩程序是托管实例组的一项功能,因此在使用自动扩缩功能之前,您应该了解托管实例组的工作原理。

  2. 获取托管实例组的名称或网址

    对于所有自动扩缩请求,您都必须提供托管实例组名称或托管实例组网址。在 gcloud 命令行工具中,您可以使用托管实例组名称,而 API 会要求您提供完全限定网址。

    要获取现有托管实例组的网址,您可以使用 instance-groups managed list --uri 命令或 instance-groups managed list [INSTANCE_GROUP] --uri 命令。例如,下列命令会提供 us-central1-f 地区中托管实例组的网址:

    gcloud compute instance-groups managed list example-group --uri --filter="zone:(us-central1-f)"
    

    gcloud 工具会返回托管实例组网址:

    https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-group
    

    如果您目前没有创建托管实例组,请了解如何创建托管实例组

后续步骤

准备就绪后,创建一个自动扩缩程序,以根据 CPU 或负载平衡服务容量或者 Stackdriver Monitoring 指标进行扩缩。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档