GCP 上の VM がプリエンプティブであるためにシャットダウンされていないことをどのように確認できますか? (事後、stackdriver を使用)

GCP 上の VM がプリエンプティブであるためにシャットダウンされていないことをどのように確認できますか? (事後、stackdriver を使用)

GCP VM でプリエンプション イベントを生成する Stackdriver のクエリを探しています。

なぜでしょうか? ノードからポッドが消えてしまうからです。どうやら、これらのノードは、ワークロードが不足し、自動スケーリングが有効になっているために後で終了するようです。つまり、ポッドが最初に停止し、自動スケーラーが正常に動作してノードをシャットダウンするように見えます。それでも、プリエンプティブ 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] に変更すると、最後に起動した日時を確認できます。または、VM で「uptime」などのコマンドを実行して、VM が起動してからどのくらいの時間が経過したかを確認することもできます。

[1]

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

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

関連情報