gpt4 book ai didi

kubernetes 节点关闭/崩溃恢复?

转载 作者:行者123 更新时间:2023-12-02 11:52:37 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

如果你想加快驱逐过程,你需要修改它。

但是如果你想最小化你的 pod 的宕机时间,当 node 宕机时,你还需要修改以下参数:

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 进行部署,即使一个节点出现故障,服务也会正常运行。

关于kubernetes 节点关闭/崩溃恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47317682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com