【问题标题】:How to setup automatic shutdown for Google Compute Instance?如何为 Google Compute Instance 设置自动关机?
【发布时间】:2021-04-02 18:18:03
【问题描述】:

我正在容器优化操作系统 GCE 实例内的 docker 容器内运行 NodeJS 应用程序。

我需要此实例在其任务完成后关闭自删除。只有 NodeJS 应用程序知道任务完成。

我曾经通过将其设置为 startup-script 来实现此行为:

node ./dist/app.js

echo "node script execution finished. Deleting this instance"
export NAME=$(curl -X GET http://metadata.google.internal/computeMetadata/v1/instance/name -H 'Metadata-Flavor: Google')
export ZONE=$(curl -X GET http://metadata.google.internal/computeMetadata/v1/instance/zone -H 'Metadata-Flavor: Google')
gcloud compute instance-groups managed delete-instances my-group --instances=$NAME --zone=$ZONE

我还使用了基于 NodeJS 应用退出代码的带有附加逻辑的类似设置。

我现在该怎么做?

有两个问题:

  1. 我不知道如何将 NodeJS 退出事件(最好带有退出代码)传递给 startup-script。我该怎么做?
  2. Container-optimized-OS GCE 实例缺少gcloud。是否有其他关闭实例的方法?

Google Cloud 的 Healthcheck 似乎太麻烦且不通用。我的应用不是网络服务器,我不想安装express 或其他东西,只是为了处理健康检查。

现在我的startup-scriptdocker run ... 命令结束。也许我应该在那之后编写关闭命令并以某种方式在 NodeJS 退出时使 docker 退出?

如果您认为运行状况检查是可行的方法,那么考虑到我的应用不是网络服务器,最简单的运行状况检查设置是什么?

【问题讨论】:

    标签: node.js docker google-cloud-platform google-compute-engine


    【解决方案1】:
    1. 尝试让您的应用在完成工作时触发云函数
    2. 云功能然后可以有脚本来删除你的虚拟机。请参阅下面的示例脚本

    https://medium.com/google-cloud/start-stop-compute-engine-instance-from-cloud-function-bf9ae5199609

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2019-01-31
      • 1970-01-01
      • 2019-07-12
      相关资源
      最近更新 更多