Как я могу быть уверен, что виртуальная машина на GCP не была выключена из-за того, что она является вытесняемой? (постфактум, с использованием stackdriver)

Как я могу быть уверен, что виртуальная машина на GCP не была выключена из-за того, что она является вытесняемой? (постфактум, с использованием stackdriver)

Я ищу запрос для stackdriver, который выдаст события вытеснения на виртуальных машинах GCP.

Почему? Потому что у меня pod'ы исчезают с узлов. Видимо, эти узлы позже отключаются из-за отсутствия рабочих нагрузок и включения автомасштабирования. Так что все выглядит так, будто pod'ы умирают первыми, а автомасштабирование действует так, как и должно, и отключает узлы. Тем не менее, этого, похоже, не происходит, когда я избегаю вытесняемых VM/узлов.

решение1

Коротышка, задав этот вопрос, я обнаружил,https://cloud.google.com/logging/docs/audit/#system_event

Итак, фильтрация logName="projects/<my-project-name>/logs/cloudaudit.googleapis.com%2Fsystem_event"показала, что произошло несколько вытеснений. Я не знал, что вытесненные ресурсы автоматически воссоздаются. Это объясняет, почему у меня сложилось впечатление, что поды исчезают, а узлы остаются пустыми. (см. такжеПочему модули на узле, который был воссоздан после вытеснения, застревают в ContainerCreating?)

решение2

Журналы для вытеснения на этом экземпляре можно найти с помощью следующего расширенного фильтра Stackdriver [1] вЗапросы журналов предварительного просмотра.

Вы можете изменить последнюю строку этого фильтра на [2], чтобы проверить, когда он был запущен в последний раз. В качестве альтернативы вы можете запустить команды, такие как "uptime" на виртуальной машине, чтобы узнать, как долго она была запущена.

[1]

resource.type="gce_instance"
resource.labels.instance_id="[INSTANCE ID]"
jsonPayload.event_subtype="compute.instances.preempted"

[2]jsonPayload.event_subtype="compute.instances.start"

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