gpt4 book ai didi

Kubernetes 优雅关闭 : Continue to serve traffic during termination

转载 作者:行者123 更新时间:2023-12-02 11:38:46 24 4
gpt4 key购买 nike

这个问题是关于 Kubernetes 中的优雅关闭。
我有一组服务器,它们最终是一致的,并且要求它们中的每一个都不断地相互通信,即使某些服务器正在终止。
由于服务器通过 HTTP 请求进行通信,因此我需要确保终止服务器能够继续接收 HTTP 请求,以便将相关信息传递给其对等方。
根据我的理解,当服务器关闭时会同时发生一些事情:它将从服务的端点列表中删除,如果有 preStop 钩子(Hook),它将运行。最初我想如果我使用 preStop 处理程序并执行 sleep 命令,那么我可以让服务器继续服务器流量。但经过一些实验后,我意识到服务器甚至会在 sleep 结束之前停止服务流量。
我想知道是否有任何方法可以配置服务器以在关闭时继续接收流量。

最佳答案

Is there a way to still be able to reach the server while it's gracefully shutting down?


是的,使用以下配置您的服务:
spec.publishNotReadyAddresses: true
然后您的 pod 将收到流量,即使它们位于 Terminating 中。状态,如 Kubernetes docs解释:

publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.


请注意 spec.publishNotReadyAddresses only works in Kubernetes v1.11+ .
在旧集群中,使用 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"注释以获得 similar behaviour .

关于Kubernetes 优雅关闭 : Continue to serve traffic during termination,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62567844/

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