如何確定 GCP 上的虛擬機器沒有因為可搶佔而關閉? (事後,使用 stackdriver)

如何確定 GCP 上的虛擬機器沒有因為可搶佔而關閉? (事後,使用 stackdriver)

我正在尋找 stackdriver 的查詢,它將在 GCP 虛擬機器上產生搶佔事件。

為什麼?因為我的 Pod 從節點中消失了。顯然,這些節點後來由於缺少工作負載和啟用自動縮放而終止。因此,一切看起來就像 Pod 首先死亡,自動縮放器按其應有的方式運行並關閉節點。不過,當我避免使用可搶佔的虛擬機器/節點時,這種情況似乎不會發生。

答案1

問完這個問題後不久我發現https://cloud.google.com/logging/docs/audit/#system_event

因此,過濾 logName="projects/<my-project-name>/logs/cloudaudit.googleapis.com%2Fsystem_event"顯示發生了幾次搶佔。我不知道搶佔的資源會自動重新建立。這解釋了為什麼我的印像是 Pod 消失了,而節點卻是空的。 (也可以看看為什麼被搶佔後重新建立的節點上的 Pod 會卡在 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"

相關內容