GCP 托管实例组不会扩展到零

2023-12-31

我有一个 GCP 托管实例组,我想使用 cron 计划将其扩展至 0 到 1 个实例。 GCP 有一个局限性 https://cloud.google.com/compute/docs/autoscaler/scaling-schedules#limitations说的是:

扩展计划只能用于至少具有一种其他类型的自动扩展信号的 MIG,例如基于平均 CPU 利用率、负载平衡服务容量或云监控指标的扩展信号。

所以我必须指定一个额外的自动缩放信号。 该文档继续建议了一种解决方法:

要仅根据计划进行扩展,您可以将 CPU 利用率目标设置为 100%。

所以我做了。但随后托管组不会缩小到 0,它只是保持在 1。 我没用过Scale-in controls,所以 AFAICT 唯一可以防止规模扩大的就是 10 分钟Stabilization period,我已经考虑过了。

我的自动缩放器配置:

{
   "name":"myname",
   "target":"the/url",
   "autoscalingPolicy":{
      "minNumReplicas":0,
      "maxNumReplicas":1,
      "scalingSchedules":{
         "out":{
            "minRequiredReplicas":1,
            "schedule":"0,20,40 * * * *",
            "durationSec":300,
            "description":"scale out"
         }
      },
      "cpuUtilization":{
         "utilizationTarget":1
      }
   }
}

计划本身将 5 分钟的横向扩展设置为 1 个实例,然后有 10 分钟的稳定时间,然后缩减为 0 应该发生,但事实并非如此。

如果我使用相同的配置,但仅更改maxNumReplicas=2 and minRequiredReplica=2,自动缩放器确实在预期时间进行缩放,但在 1 到 2 个实例之间。我认为这意味着时间表本身没问题。

我的理论是cpuUtilization信号阻止缩放到 0。有没有办法可以按计划在 0 和 1 之间缩放?也许是另一个信号,而不是cpuUtilization?

Thanks!


Update:

必须使用扩展计划指定附加自动扩展信号的限制现已消失,现在可以配置在 0 和 1 个实例之间交替的计划(但请参阅下面的一般答案)。

当可以扩展到 0 个实例时:

  1. min_num_replicas 设置为 0。
  2. 仅使用这些自动缩放信号:时间表 https://cloud.google.com/compute/docs/autoscaler/scaling-schedules or 每组 Cloud Monitoring 指标 https://cloud.google.com/compute/docs/autoscaler/scaling-stackdriver-monitoring-metrics#per_group_metrics(或两者)。

特别是,当自动缩放信号之一是 CPU 利用率、LB 利用率或每个实例的 Cloud Monitoring 指标 https://cloud.google.com/compute/docs/autoscaler/scaling-stackdriver-monitoring-metrics#per_instance_metrics.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GCP 托管实例组不会扩展到零 的相关文章

  • 谷歌云功能权限问题

    我在 GCP 中有两个项目 假设项目 A 和 B 项目 A 是新创建的 项目 B 已经有两年了 当我在项目 A 中创建云函数时 它是使用默认服务帐户 project appspot 创建的 但是 当我在项目 B 上创建云函数时 使用了不存在
  • 如何通过 PHP App Engine 应用程序在 Google Compute Engine 实例上创建 cron 作业?

    由于我们的 App Engine 应用程序的架构 我们无法使用 Google 提供的 App Engine cron 服务 并且正在寻找替代选项 我们提出的一种可能的解决方案是允许我们的 App Engine PHP 应用程序在计算引擎实例
  • 如何在 Google Dataproc 集群中安装 python 包

    创建并运行集群后 是否可以在 Google Dataproc 集群中安装 python 包 我尝试使用 pip install xxxxxxx 在主命令行中 但它似乎不起作用 Google的Dataproc文档没有提及这种情况 创建集群后
  • 使用 BigQuery Spark 连接器通过 Datalab 从 Dataproc 连接到 BigQuery 时出错(从元数据服务器获取访问令牌时出错)

    我有 BigQuery 表 Dataproc 集群 带有 Datalab 并且遵循本指南 https cloud google com dataproc docs tutorials bigquery connector spark exa
  • 将仅限 HTTPS 的自定义域正确分配给 flex env

    将自定义域映射到 Google App Engine 项目的正确方法是什么 我已经添加了自定义域 设置了所有 DNS 记录等 并且它正在工作 但如何仅强制执行 HTTPS 就像生成的自定义域一样 从阅读周围many我看过的帖子secure
  • 项目未出现在“gcloud 项目列表”中

    我在 Google Cloud 控制台中添加了一个项目 但使用 gcloud SDK gcloud 项目列表 未显示该项目 我是在做一些愚蠢的事情还是我错过了什么 Edit 您是否为新帐户使用不同的凭据 否 该帐户是在控制台和sdk控制台上
  • 创建一个能够从容器注册表中提取的 Docker 就绪计算引擎

    我们使用 terraform 设置 GCE 实例 然后使用 ansible playbooks 来配置它们并将我们的服务转移到机器上 我正在我们的组织中运行一个项目 该项目需要从另一个项目中提取 Docker 映像 这些图像托管在另一个项目
  • Python Asyncio run_forever() 和任务

    我改编了这段代码 以便在异步 Python 中使用 Google Cloud PubSub https github com cloudfind google pubsub asyncio https github com cloudfin
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • GCP Dataproc Spark.jar.packages 下载依赖项时出现问题

    创建 Dataproc Spark 集群时 我们通过 properties spark spark jars packages mysql mysql connector java 6 0 6 to the gcloud dataproc
  • 尝试将 CLI 登录到 Firebase 时出现“出现问题”

    大约 2 年后 我重新开始使用 Firebase 现在我在尝试将 CLI 登录到 Firebase 时遇到问题 是的 我已经安装了npm i g firebase tools 我已经尝试了 3 个不同的命令 所有这些命令都会生成下面的图像之
  • 如何获取firestore集合下的文档数量? [复制]

    这个问题在这里已经有答案了 我想获取 firestore 集合中的文档总数 我正在制作一个论坛应用程序 所以我想显示每个讨论中当前的评论量 有类似的东西db collection comments get lenght或类似的东西 随着si
  • 处理 Cloud Run 容器关闭

    在编写 Cloud Run 服务时 我们开发一个容器来监听PORT用于处理传入 HTTP 请求的环境变量 容器的实例会启动并处理请求 然后在完成原始请求后存活一段时间 以防有更多请求到达 如果没有进一步的请求 GCP关闭容器 我在这方面有一
  • 在同一事务上读取和修改 - Bigtable

    我正在构建一个优惠券系统 并且正在使用 Bigtable 我的架构有两列 客户 ID 和优惠券代码 我想查询表以检查客户是否已存在 如果为真 则返回代码 如果为假 则使用 ID 修改客户 ID 单元格并返回代码 我看到 Bigtable 中
  • 如何更改谷歌云数据存储类型名称?

    我们正在使用google cloud datastore存储数据 不幸的是最初没有遵循命名约定kinds现在我们想要改变数据存储中已存在的种类的名称 我们已经积累了大量的数据 并且生成这些数据涉及大量的计算 因此仅仅为了重命名一种类型而再次
  • 获取 Google Cloud 服务帐户的开发者密钥

    我已经启用了XML API https cloud google com storage docs interoperability并分配了一些开发者密钥 https cloud google com storage docs migrat
  • 自动递增 EC2 实例名称

    我在 Stackoverflow 上看到很多问题 询问是否有办法自动递增实例名称 例如 foo1 foo2 fooN 我想看看是否有办法在 Powershell 中执行此操作 我正在使用 AutoLaunchConfiguration AS
  • Google G-Suite API 控制台未显示启用 G Suite 域范围委派

    我正在与客户合作设置服务帐户凭据 以便通过 API 读取 G Suite 目录信息 我之前已经这样做了十几次 没有任何问题 现在我遇到了一个问题 设置没有向客户端显示 下面的图片显示了我通常会看到的内容 阅读中圈出的区域是启用域范围委派的能
  • Kubernetes 通过基于时间的触发器扩展 Pod

    我有一台在 Kubernetes 上运行的服务器来处理每小时的处理作业 考虑使用服务来公开 pod 并使用 外部 cron 作业来访问负载均衡器 以便 kubernetes 可以根据需要自动缩放以处理更高的负载 然而在实现中 如果 cron
  • BigQuery - 预定查询更新通知电子邮件

    有没有办法将计划查询通知电子邮件更新为自定义内容 默认情况下 它是创建者的电子邮件 但是 这通常是没有真正电子邮件收件人的服务帐户 例如 通过 terraform 配置 我们将拥有一个服务帐户 我们希望将电子邮件通知目标从 SA 更新为支持

随机推荐

  • .sass-cache 中的文件有什么用?

    第一次使用 Sass 后 我注意到它留下了一个目录 sass cache在我的工作目录后面 我似乎无法使用其中的文件 在散列子目录中 那么这个目录是做什么用的 我可以将它用作 VCS 之类的吗 删除安全吗 来自文档 http sass la
  • 可以粘贴 19 小时前的 Package-Lock.json 来修复“ValidationError:进度插件无效选项”(Vue 3)吗?

    我正在使用 Vue 3 并且 19 小时前我将项目的一个运行良好的版本推送到了 GitHub 大约5小时后 进入时出现以下问题npm run serve这导致了这些信息 gt email protected cdn cgi l email
  • 我真的需要指定 .gitattributes 中的所有二进制文件吗

    我读了Git 文档 https help github com en articles configuring git to handle line endings这表明我可以显式地将某些文件设置为文本 因此它们的行结尾会自动更改或作为二进
  • 如何在Python 3.7中构建一个简单的RSS阅读器?

    我在 Python 上构建了一个简单的 RSS 阅读器 但它不起作用 另外 我想获取每个帖子的特色图片源链接 但我没有找到方法 它向我显示错误 回溯 最近一次调用最后一次 文件 RSS reader py 第 7 行 在 feed titl
  • Python list.remove() 跳过列表中的下一个元素

    Python 但不会编程 这里是新手 我正在使用列表进行编程 并遇到了一个有趣的问题 width 2 height 2 Traverse the board def traverse x y The four possible direct
  • CSS 规则未被覆盖

    我遇到了一个奇怪的问题 CSS 规则似乎无法在 Mac 上的 Safari Chrome Firefox 上正确应用 给出以下 html 代码 table border 1 tr td Hello td tr table 然后以下 css
  • 正则表达式用值替换所有逗号

    我有一个如下所示的字符串 Doe John A 姓氏 名字 中间名首字母 我正在尝试编写一个正则表达式 将字符串转换为 Doe John A 但是 我必须考虑到该字符串的所有空格 因此 Doe John A 仍会转换为 Doe John A
  • 如何将分段计时器添加到 Google 表单中进行学校测验? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们使用 Google Forms 进行了英语语言测试 该测试分为 3 个部分 我们希望能够为每个部分设置时间 例如 A 部分 10
  • 在设备和应用商店上刷新 SQLITE3(核心数据)

    我有一个利用 Core Data SQLITE3 的应用程序 可以在模拟器中完美运行 但是我不明白如何更新设备上的数据库 我猜这与应用程序商店中的相同 我从应用程序中的 txt 文件更新数据库并创建数据库 此功能仅用于创建数据库 将在最终版
  • 为什么在 Default.png 期间状态栏仍然显示?

    我非常确定我已采取所有步骤将状态栏正确设置为隐藏 我在 info plist 文件 将 UIStatusBarHidden 设置为布尔值 TRUE 以及应用程序委托中的 applicationDidFinishLaunching 方法中执行
  • C++ vs2010 增加堆栈大小

    我正在使用 vs2010 c 来处理图像 我的图像是 1920 x 1200 的数组 我什至无法声明 unsigned short frame 1920 1200 由于堆栈溢出 如何增加堆栈大小 在 Visual Studio 中 您可以通
  • 为什么第一个 AJAX 调用会重置我的视图参数?

    我无法找出为什么第一个 ajax 调用会导致再次调用我的视图参数的 setter 而每个后续调用都不会再次调用该 setter 我有以下简单的视图 bean package test import java io Serializable
  • Numba - nopython 模式是否支持元组列表?

    我想澄清一下 这是我第一次使用 Numba 所以我距离成为专家还很远 我正在尝试手动实现一个简单的 KNN 代码如下 jit nopython True def knn training set test set for q in rang
  • 带有载波上传字段的工厂[重复]

    这个问题在这里已经有答案了 您好 例如 我需要为我的模型建立工厂 Factory define farm do f f name Factory next name f harvest 3 f offers Random f latitud
  • 在.Net 2中使用WCF时int属性为0

    我在 Net 4 中有一个 MVC 项目 其中包含带有 BasicHttpBinding 的 WCF 服务 当在 Net 2 中使用此服务时 如果属性为 int 则到达的值为 0 如果它是一个字符串 那么就可以了 在 Net 4 中构建一个
  • 序列化包含java对象的对象

    我尝试序列化一个包含另一个本身可序列化的对象的对象 有办法让它发挥作用吗 当我序列化第一个对象时 指向另一个对象的指针似乎丢失了 以下是关于持久对象的两条规则 规则 1 要持久化的对象必须实现 Serialized 接口或从其对象层次结构继
  • glGenTextures 在后台线程中返回零

    我需要在 OpenGL ES 的后台线程中加载纹理 但在后台线程中调用时 glGenTextures 始终返回零 void someMethodInMainThread self performSelectorInBackground se
  • 如何读取 Servlet 中的图像(或其他文件)并将其编码为 base64 [重复]

    这个问题在这里已经有答案了 在 servlet 中 我必须从磁盘读取图像文件 将其编码为 Base64 然后发送回客户端 因为我只找到了 iOS Python 和其他一些类型的示例 基本上都以相同的方式进行 所以我想在这里发布我的代码是为了
  • 共享除前缀之外的所有地点或如何使用 PlaceHistoryMapperWithFactory

    在我的 gwt app 中 我有一些地方共享除前缀之外的所有内容 例如 editUserPlace 和 showUserPlace 在这种情况下 状态由 userId 确定 我当前的尝试是通过 ShowUserPlace 和 EditUse
  • GCP 托管实例组不会扩展到零

    我有一个 GCP 托管实例组 我想使用 cron 计划将其扩展至 0 到 1 个实例 GCP 有一个局限性 https cloud google com compute docs autoscaler scaling schedules l