Мы используем экземпляр графического процессора в облаке Google для запуска службы, связанной с машинным обучением. У Google Cloud есть эти внеплановые планы обслуживания для своих экземпляров GPU. Прежде чем экземпляр будет отключен для обслуживания, облачный API Google отправит уведомление этому экземпляру за 1 час до того, как экземпляр будет отключен.
Предположим, что экземпляр графического процессора называется «vm1». Мы хотим запустить резервный экземпляр графического процессора «vm1-duplicate», как только «vm1» получит уведомление о том, что он будет проходить техническое обслуживание позже, чтобы обслуживание наших клиентов было затронутые этим обслуживанием. И как только обслуживание «vm1» будет завершено, остановите «vm1-duplicate», чтобы не возникло дополнительных затрат.
Есть ли в облаке Google элегантный способ запрограммировать такой автоматический запуск / остановку виртуальной машины на основе некоторых условий / триггеров / событий?
Супер быстрое решение: установите gcloud в vm (он уже должен быть там), создайте учетную запись службы [1], создайте небольшой сценарий оболочки и запускайте его в cron каждые 15/30 минут.
Сценарий будет отслеживать конечную точку http [2] события и возродить новую виртуальную машину из вашей виртуальной машины через командную строку gcloud. Остановите автозапуск и просто оставьте новую виртуальную машину работающей.
Если это сработает, подумайте о том, чтобы создать свой собственный образ с уже установленным скриптом и настроенным cron. Так возродиться будет проще.
[1] не обязательно, просто чтобы не помещать свои учетные данные в виртуальную машину
[2] https://cloud.google.com/compute/docs/gpus/gpu-host-main maintenance