Как автоматически запустить/остановить экземпляр (виртуальную машину) на основе некоторого события/триггера в облаке Google?

Как автоматически запустить/остановить экземпляр (виртуальную машину) на основе некоторого события/триггера в облаке Google?

Мы используем экземпляр GPU в облаке Google для запуска сервиса, связанного с машинным обучением. У облака Google есть эти незапланированные планы обслуживания для экземпляров GPU. Перед тем, как экземпляр будет отключен для обслуживания, API облака Google отправит уведомление этому экземпляру за 1 час до отключения экземпляра.

Предположим, что экземпляр GPU называется "vm1". Мы хотим запустить резервный экземпляр GPU, "vm1-duplicate", как только "vm1" получит уведомление о том, что он будет проходить техническое обслуживание позже, чтобы обслуживание наших клиентов было затронуто этим обслуживанием. И как только обслуживание "vm1" будет завершено, остановите "vm1-duplicate", чтобы не было дополнительных расходов.

Есть ли в облаке Google элегантный способ запрограммировать такой автоматический запуск/остановку виртуальной машины на основе некоторых условий/триггеров/событий?

решение1

Супербыстрое решение: установите gcloud в виртуальной машине (он уже должен быть там), создайте учетную запись службы [1], создайте небольшой скрипт оболочки и запускайте его в cron каждые 15/30 минут.

Скрипт будет отслеживать событие http endpoint [2] и возродит новую виртуальную машину из вашей виртуальной машины через командную строку gcloud. Остановите автоперезапуск и просто поддерживайте новую виртуальную машину в рабочем состоянии.

Если это работает, рассмотрите возможность создания собственного образа с уже установленным скриптом и настроенным cron. Так что респаун будет проще.

[1] не обязательно, просто чтобы избежать ввода учетных данных в виртуальную машину

[2]https://cloud.google.com/compute/docs/gpus/gpu-host-maintenance

Связанный контент