我有一个 k8s 集群,在我们的集群中,我们不希望 pod 被驱逐,因为 pod 驱逐会对在其上运行的应用程序产生很多副作用。
为了防止 pod 驱逐发生,我们将所有 pod 配置为 Guaranteed QoS。我知道即使这样,如果系统中存在任何资源匮乏,也会发生 pod 驱逐。当 pod 和节点内出现资源不足时,我们有监视器来提醒我们。所以我们在一个 pod 被驱逐之前就知道了。这有助于我们在 pod 被驱逐之前采取措施。
发生 pod 驱逐的其他原因是如果节点处于未就绪状态,则 kube-controller-manager 将检查 pod-eviction-timeout 并在此超时后驱逐 pod。当节点进入未就绪状态时,我们有监视器来提醒我们。现在在这个警报之后,我们想采取一些措施从应用程序端进行清理,所以应用程序将优雅地结束。要进行此清理,我们需要几个小时以上,但 pod-eviction-timeout 默认为 5 分钟。
将 pod eviction timeout 增加到 300m 可以吗?将此超时增加到这样的限制有什么影响?
PS:我知道在这段等待时间内,如果 pod 使用了更多的资源,那么 kubelet 可以自己驱逐这个 pod。我想知道等这么久还有什么影响?