kubernetes节点关闭/崩溃恢复?

问题描述 投票:1回答:1

我们有一个具有主节点(foo-1)和两个工作节点(foo-2和foo-3)的集群。我们有一个在foo-3上运行的pod(由Kubernetes决定)。我们故意关闭foo-3作为实验。

我的期望是Kubernetes会“看到”关机,并在foo-2中自动重启pod。但是,它似乎没有发生。实际上,它似乎认为pod仍然在foo-3上运行。

经过五分钟的等待,Kubernetes终于认识到群集节点已经消失,并通过重新启动foo-2上的pod来优雅地响应。五分钟对我们来说太长了,因为这不是一个复制的应用程序。我们怎样才能使那个超时大大缩短(比如,10秒)?实际上,如果主机正常关闭(如修补),效果应立即生效。

kubernetes
1个回答
3
投票

--pod-eviction-timeout中有一个kube-controller-manager参数,默认为5米:

 --pod-eviction-timeout duration    The grace period for deleting pods on failed nodes. (default 5m0s)

如果您想加快驱逐过程,则需要对其进行修改。

但是,如果要最小化pod的停机时间,当节点关闭时,您还需要修改以下参数:

kubelet: node-status-update-frequency=4s (default 10s)

kube-controller-manager: node-monitor-period=2s (default 5s)
kube-controller-manager: node-monitor-grace-period=16s (default 40s)
kube-controller-manager: pod-eviction-timeout=30s (default 5m)

当然,即使一个节点出现故障,您也可以始终使用副本2进行部署,并且服务也将启动。

© www.soinside.com 2019 - 2024. All rights reserved.