首页 > 解决方案 > 如何在 GCE 中的 pod 失败后防止 pod 调度到节点?

问题描述

我有一个在 pod 和节点之间进行 1 对 1 映射的设置,其中每个节点都有一个本地 ssd,每个 pod 都将自定义数据写入该 ssd。如果一个 pod 不正常地死掉,它可能会使本地 ssd 处于无法预测的状态,如果其他 pod 安装在它上面。

我打算使用集群自动缩放,所以我的想法是,如果我可以阻止容器在节点上调度,GCE 将删除节点,并创建一个新的干净节点?如何防止节点安排新的 pod?

标签: google-kubernetes-engine

解决方案


我会运行一个检查卷状态的计划任务(可能是cronjob )。如果卷损坏 - 向节点添加标签- (例如 - volume-state=corrupted

使用nodeAffinity和nodeSelectorrequiredDuringSchedulingRequiredDuringExecution按您的标签安排您的 Pod

它将从不再满足 pod 的节点亲和性要求的节点中驱逐 pod。


推荐阅读