如何处理抢占通知?

时间:2018-04-19 09:03:42

标签: kubernetes google-cloud-platform google-kubernetes-engine

我目前正在AWS上运行,并使用kube-aws/kube-spot-termination-notice-handler拦截AWS终止通知,并优雅地驱逐pod。

我正在阅读this GKE documentation page,我看到了:

  

在收到抢先通知后30秒内,可抢占的实例终止。

进入Compute Engine文档,我发现ACPI G2 Soft Off在终止发生前30秒发送,但是this issue表示kubelet本身无法处理它。

那么,GKE如何处理抢占?节点是否会进行排水/警戒线操作,还是仅仅进行硬关机?

2 个答案:

答案 0 :(得分:1)

是的,你是对的,到目前为止还没有内置的方法来处理Ext.create('clt.view.users.UsersModel', {

请注意,如果normal preemptible实例支持关闭脚本(您可以在其中引入某种逻辑来执行drain / cordon),如果它们是Kubernetes节点则不是这样:

  

目前,可抢占的VM不支持关闭脚本。

您可以执行一些测试,但可以从文档中再次引用:

  

您可以通过停止实例来模拟实例抢占。

到目前为止,如果你停止实例,即使它是一个Kubernetes节点,也不会采取任何措施来封锁/排空并感激地从集群中删除该节点。

然而,这个功能仍然处于测试阶段,因此它处于生命的早期阶段,在这个时刻讨论是否以及如何引入此功能是一个问题。

免责声明:我的工作是支持Google Cloud Platform

答案 1 :(得分:1)

最新和相关的答案

有一个GitHub项目(不是我的),该项目捕获此ACPI处理程序,并使节点自行束缚和耗尽,然后重新启动自身,这在我们的测试中产生了更干净的可抢占体验,对于高度可用的部署,这几乎不明显在您的群集上。

请参阅:https://github.com/GoogleCloudPlatform/k8s-node-termination-handler