优雅地终止 kubernetes pod

Nag*_*sha 5 load-balancing kubernetes

我们有一个带有 4 个 Pod 的应用程序,它使用负载均衡器运行!我们想尝试滚动更新,但我们不确定当 pod 出现故障时会发生什么!文档不清楚!特别是来自Termination Of Pods 的这句话:

Pod 从服务的端点列表中删除,不再被视为复制控制器的运行 Pod 集的一部分。缓慢关闭的 Pod 可以继续为流量提供服务,因为负载均衡器(如服务代理)将它们从轮换中移除。

因此,如果有人可以指导我们解决以下问题:

1.) 当 Pod 关闭时,它还能处理新的请求吗?还是负载均衡器不考虑?

2.) 它是否会在宽限期用完之前完成它正在处理的请求?然后即使有任何进程仍在运行也会杀死容器?

3.) 另外,这里提到复制控制器,我们有一个Deployment,Deployment有副本集,那么会有什么区别吗?

我们经历了这个问题,但答案是相互矛盾的,没有任何来源: Kubernetes 滚动更新是否从服务负载均衡器中优雅地删除了 pod

pag*_*gid 5

1) 当 Pod 关闭时,它的状态会更改为,Terminating并且 LoadBalancer 不会考虑它 - 如Pod 终止文档中所述

2) 是的 - 您可能需要查看pod.Spec.TerminationGracePeriodSeconds配置以获得一些控制权。您可以在API 文档中找到详细信息

3) 否 - ReplicaSet 和 Deployment 负责调度 Pod,Pod 的关闭行为没有区别

  • 对于 1),它是否在向容器发送 SIGTERM 之前或之后将状态更改为 Termination?我遇到间歇性 502 错误,我怀疑与此有关。 (2认同)