Google Cloud Compute Engine VM 实例组始终自动修复到最大实例数
Google Cloud Compute Engine VM Instance group always autoheals to max number of instances
-
autoscaling
-
google-compute-engine
-
google-cloud-logging
-
google-cloud-monitoring
-
google-cloud-stackdriver
我已经设置了一个 Google Cloud Compute Engine VM 实例组(实例数在 2 到 5 之间)并且配置了自动修复以在 3 次健康检查失败后启动。这些实例是使用实例模板和部署我的应用程序的启动脚本创建的。但是,当我尝试通过在一个虚拟机上停止我的应用程序进程来测试自动修复时,失败的实例最终会在自动修复期间被删除和替换,但在此过程中还会创建 3 个新实例。我还将实例组的自动修复初始延迟配置为 600 秒,所以我认为这不是问题所在。
启用日志记录后,我检查了实例组日志中的健康检查语句,这是我发现的:
- 在第一次记录健康检查状态更改后,执行删除实例操作,然后执行添加实例操作。
- 添加实例操作后,记录另一个健康检查探测结果,健康状态从“未知”/“不健康”变为“超时”/“不健康”。
- 大约 2 分钟后又记录了三个添加实例操作,这些操作在缩减后不久就被删除了。
有谁知道为什么会发生 3 个额外的添加实例操作,是否可以避免这种情况?
更新:通过增加自动缩放配置的冷却时间解决了该问题。
如 OP 所述,该问题已通过调整 cool down period 得到解决。
autoscaling
google-compute-engine
google-cloud-logging
google-cloud-monitoring
google-cloud-stackdriver
我已经设置了一个 Google Cloud Compute Engine VM 实例组(实例数在 2 到 5 之间)并且配置了自动修复以在 3 次健康检查失败后启动。这些实例是使用实例模板和部署我的应用程序的启动脚本创建的。但是,当我尝试通过在一个虚拟机上停止我的应用程序进程来测试自动修复时,失败的实例最终会在自动修复期间被删除和替换,但在此过程中还会创建 3 个新实例。我还将实例组的自动修复初始延迟配置为 600 秒,所以我认为这不是问题所在。
启用日志记录后,我检查了实例组日志中的健康检查语句,这是我发现的:
- 在第一次记录健康检查状态更改后,执行删除实例操作,然后执行添加实例操作。
- 添加实例操作后,记录另一个健康检查探测结果,健康状态从“未知”/“不健康”变为“超时”/“不健康”。
- 大约 2 分钟后又记录了三个添加实例操作,这些操作在缩减后不久就被删除了。
有谁知道为什么会发生 3 个额外的添加实例操作,是否可以避免这种情况?
更新:通过增加自动缩放配置的冷却时间解决了该问题。
如 OP 所述,该问题已通过调整 cool down period 得到解决。