Wie kann ich eine Instanz (VM) basierend auf einem Ereignis/Trigger in der Google Cloud automatisch starten/stoppen?

Wie kann ich eine Instanz (VM) basierend auf einem Ereignis/Trigger in der Google Cloud automatisch starten/stoppen?

Wir verwenden eine GPU-Instanz in der Google Cloud, um einen Dienst im Zusammenhang mit maschinellem Lernen auszuführen. Die Google Cloud verfügt über diese außerplanmäßigen Wartungspläne für ihre GPU-Instanzen. Bevor die Instanz wegen Wartungsarbeiten heruntergefahren wird, sendet die Google Cloud-API eine Stunde vor der Herunterfahren der Instanz eine Benachrichtigung an diese Instanz.

Angenommen, die GPU-Instanz heißt „vm1“. Wir möchten eine Backup-GPU-Instanz namens „vm1-duplicate“ starten, sobald „vm1“ die Benachrichtigung erhält, dass sie später gewartet wird, sodass der Service für unsere Kunden von dieser Wartung betroffen wäre. Und sobald die Wartung an „vm1“ abgeschlossen ist, stoppen wir „vm1-duplicate“, damit keine zusätzlichen Kosten entstehen.

Gibt es in der Google Cloud eine elegante Möglichkeit, solch ein automatisches Starten/Stoppen einer VM basierend auf bestimmten Bedingungen/Auslösern/Ereignissen zu programmieren?

Antwort1

Superschnelle Lösung: Installieren Sie gcloud in der VM (sollte dort bereits vorhanden sein), erstellen Sie ein Service-Konto [1], erstellen Sie ein kleines Shell-Skript und führen Sie es alle 15/30 Minuten in Cron aus.

Das Skript überwacht den HTTP-Endpunkt des Ereignisses [2] und startet über die Befehlszeile gcloud eine neue VM innerhalb Ihrer VM. Stoppen Sie den automatischen Neustart und halten Sie die neue VM einfach am Laufen.

Wenn es funktioniert, sollten Sie Ihr eigenes Image mit dem bereits vorhandenen Skript und dem konfigurierten Cron erstellen. So wird der Respawn einfacher.

[1] nicht zwingend erforderlich, nur um zu vermeiden, dass Sie Ihre Anmeldeinformationen in der VM speichern

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

verwandte Informationen