Kubernetes优雅关机:在终止期间继续为流量服务

Kubernetes优雅关机:在终止期间继续为流量服务,kubernetes,server,yaml,Kubernetes,Server,Yaml,这个问题是关于库伯内特斯的优雅关闭 我有一组服务器,它们最终是一致的,并且要求它们中的每一个都不断地相互通信,即使某些服务器正在终止 由于服务器通过HTTP请求进行通信,因此我需要确保终止服务器能够继续接收HTTP请求,以便将相关信息传递给其对等方 根据我的理解,当服务器关闭时,将同时发生一些事情:它将从服务的端点列表中删除,如果有预停止挂钩,它将运行。最初我认为,如果我使用一个预停止处理程序并执行一个sleep命令,那么我可以让服务器继续处理服务器流量。但经过一些实验后,我意识到服务器甚至在睡

这个问题是关于库伯内特斯的优雅关闭

我有一组服务器,它们最终是一致的,并且要求它们中的每一个都不断地相互通信,即使某些服务器正在终止

由于服务器通过HTTP请求进行通信,因此我需要确保终止服务器能够继续接收HTTP请求,以便将相关信息传递给其对等方

根据我的理解,当服务器关闭时,将同时发生一些事情:它将从服务的端点列表中删除,如果有预停止挂钩,它将运行。最初我认为,如果我使用一个预停止处理程序并执行一个sleep命令,那么我可以让服务器继续处理服务器流量。但经过一些实验后,我意识到服务器甚至在睡眠结束之前就会停止服务流量

我想知道是否有任何方法可以配置服务器,以便在服务器关闭时继续接收流量

有没有办法在服务器正常关闭时仍然能够访问服务器

是,请使用以下配置您的服务:

spec.publishNotReadyAddresss:true
然后,您的POD将接收流量,即使它们处于
终止
状态,如下所述:

PublishNotReadyAddresss设置为true时,表示DNS实现必须为与服务关联的端点发布子集的NotReadyAddress。默认值为false。设置此字段的主要用例是使用StatefulSet的Headless服务传播其POD的SRV记录,而不考虑它们是否准备好进行对等发现

请注意,
spec.publishNotReadyAddresss

在较旧的集群中,使用
service.alpha.kubernetes.io/tolerate-unready-endpoints:“true”
注释来获得一个值。

我很好奇这个特定用例是什么。你能详细说明一下吗?刚刚添加了用例!这是为了达成共识。