滚动重启导致app引擎应用程序脱机.有没有办法更改配置以防止这种情况发生?

Max*_*ews 6 google-app-engine virtual-machine google-cloud-platform app-engine-flexible google-appengine-node

大约每周一次,我们灵活的应用程序引擎节点应用程序将脱机,日志中会显示以下行:Restarting batch of VMs for version 20181008t134234 as part of rolling restart.我们将应用程序设置为使用以下设置自动缩放:

runtime: nodejs
env: flex
beta_settings:
 cloud_sql_instances: tuzag-v2:us-east4:tuzag-db
automatic_scaling:
 min_num_instances: 1
 max_num_instances: 3
liveness_check:
 path: "/"
 check_interval_sec: 30
 timeout_sec: 4
 failure_threshold: 2
 success_threshold: 2
readiness_check:
 path: "/"
 check_interval_sec: 15
 timeout_sec: 4
 failure_threshold: 2
 success_threshold: 2
 app_start_timeout_sec: 300
resources:
 cpu: 1
 memory_gb: 1
 disk_size_gb: 10
Run Code Online (Sandbox Code Playgroud)

我理解GCP/GAE的滚动重启,但我很困惑为什么谷歌在使我们的主要离线之前没有启动另一个虚拟机.我们是否必须使用最少2个实例运行才能防止这种情况发生?是否有一种方法可以配置我app.yaml以确保在重新启动唯一正在运行的实例之前启动另一个实例?重新启动完成后,所有内容都恢复正常,但仍有10分钟的停机时间,这是不可接受的,特别是考虑到我们无法控制何时重新启动.

小智 4

我们知道灵活实例每周重新启动是预期行为。如果运行状况检查 配置正确并且不是问题,那么实际上建议至少设置两个实例。

据我所知,App Engine Flex 中没有其他功能可以引发新实例以避免因每周重新启动而导致停机。您可以尝试直接在 Google Compute Engine 而不是 App Engine 上运行并自行管理更新和维护,也许这更适合您的目的。