托管实例组中的抢占式虚拟机进入终止状态

问题描述

我有一个由一组可抢占 VM 组成的托管实例组 - 它们是短暂的,可以随时被抢占(我们的组足够大,可以承受一次丢失多个 VM) - 在大多数情况下,MIG 将带来VM 计数在 VM 抢占时恢复到所需的级别 - 有时一个节点进入终止状态并且 MIG 仍然将其视为可用并且没有采取任何措施来纠正问题 - 所以我关闭一个或多个虚拟机。我对终止状态的理解是“TERMINATED。用户关闭实例,或者实例遇到故障。您可以选择重启实例或删除它”。鉴于我们没有关闭实例,它一定遇到了一些故障 - 除了节点被抢占之外,日志没有表明任何其他内容。如何配置我的实例组以删除/重新创建最终处于此状态的虚拟机?

解决方法

阅读您的问题,我明白您想知道为什么 VM 一直终止,对吗? 正如您提到的,您正在使用具有可抢占 VM 的托管实例组,这意味着根据 this document,VM 始终会在 24 小时(或更短)内终止。

除此之外,也许您想确定最近几个小时在您的实例上发生了什么,为此我建议您在您的实例中打开 SSH 并使用“journalctl”作为示例:

journalctl -b --since "2021-03-04 00:00:00" | grep 'terminated'

此命令将查找从给定时间戳到您运行该命令那一刻的所有“终止”语句。

如果您不关心终止或您的 VM 每 24 小时一次,我认为使用 preemptible VM's 没有问题。但是,如果这导致您的操作出现问题,我建议您关闭抢占功能,让 load balancer 根据您的需要采取行动。

何塞。