如何使用spring引导配置服务器中的执行器刷新所有kubernetes吊舱

如何使用spring引导配置服务器中的执行器刷新所有kubernetes吊舱,kubernetes,spring-boot-actuator,Kubernetes,Spring Boot Actuator,我有一个kubernetes集群,它有一个配置服务器pod(SpringCloudConfig),我的应用程序运行在3个不同的HA pod中,由服务ip公开。 当我在git和commit+push中更改属性时,我必须调用。 问题是,当我调用这个url时,只有1个pod得到更新(处理当前请求的pod) 有办法解决吗?我看到了一些使用kubectl查找Pod的选项(2013年的答案),但我正在寻找更多的本机解决方案。在滚动升级期间更换Pod时,它将在启动期间从配置服务器获取其配置。因此,与获得单个P

我有一个kubernetes集群,它有一个配置服务器pod(SpringCloudConfig),我的应用程序运行在3个不同的HA pod中,由服务ip公开。 当我在git和commit+push中更改属性时,我必须调用。 问题是,当我调用这个url时,只有1个pod得到更新(处理当前请求的pod)


有办法解决吗?我看到了一些使用kubectl查找Pod的选项(2013年的答案),但我正在寻找更多的本机解决方案。

在滚动升级期间更换Pod时,它将在启动期间从配置服务器获取其配置。因此,与获得单个Pod并刷新Pod相比,k8s本机解决方案是按照问题中的建议进行无操作滚动升级

如果您在滚动升级中更改配置,并且问题与时间有关,那么您可以使用Pod上的启动后挂钩进行额外刷新


您可能正在考虑使用bash脚本列出所有pod并刷新它们,可能是通过执行“kubectl exec-it”将shell放入容器中并从容器中调用refresh。我可以理解您的担心,这不是很“原生”,因为它是相当手动的,您可能希望k8s或配置服务器提供更自动化的解决方案。实际上,您必须选择您想要的“本机”方法,因为配置服务器基于刷新的方法与配置映射和滚动升级的k8s概念大不相同。(参见示例)配置服务器的一个更原生的解决方案是发送消息,提醒服务有新的配置可用-参见

末尾的链接一个介于两者之间的选项是spring cloud kubernetes项目()中的配置选项。但是如果你已经在使用配置服务器,那么我想你可能不想切换到它。谢谢你的回答,实际上我不是在升级,只是在配置repo中更改配置并“告诉”pod刷新自己。所以问题是如何最好地“告诉”所有pod刷新自己,因为您可能不想做像这样复杂的事情?一种“告诉”所有pod刷新的方法是启动滚动升级。然后,它们将逐渐被杀死,并被新的吊舱取代,新的吊舱将具有新的配置。有一种方法可以进行滚动升级,即使基础应用程序中没有代码更改。@chenchuk请参阅