如何在春季启动配置服务器中使用执行器刷新所有kubernetes容器

时间:2018-12-25 09:16:56

标签: kubernetes spring-boot-actuator

我有一个kubernetes集群,其中有一个配置服务器容器(春季云配置),我的应用程序在3个不同的HA容器中运行,由service-ip公开。 当我在git中更改属性并提交+推送时,我必须调用http://service-ip/actuator/refresh。 问题是,当我调用此url时,只有1个pod得到更新(处理当前请求的pod)。

有什么办法解决呢?我看到了一些使用kubectl(2013年的答案)找到豆荚的选项,但是我正在寻找更多的本地解决方案。

1 个答案:

答案 0 :(得分:0)

在滚动升级期间更换Pod时,它将在启动过程中从配置服务器获取其配置。因此,如问题How to recycle pods in Kubernetes

所建议的那样,比获取单个Pod和刷新Pod多一个k8s本机解决方案将是进行无操作滚动升级。

如果要在滚动升级过程中更改配置,并且问题与计时有关,则可以使用Pod上的启动后挂钩进行其他刷新。

大概您正在寻找的是使用bash脚本列出所有Pod并刷新它们,也许通过执行'kubectl exec -it'将其封装到容器中并在其中调用refresh。我可以理解您的担心,因为它不是很“本机”,因为它是完全手动的,您会期望使用k8s或配置服务器提供更自动化的解决方案。实际上,您必须选择所需的“本机”方法,因为配置服务器的基于刷新的方法与configmap和滚动升级的k8s概念完全不同。 (例如,参见https://dzone.com/articles/configuring-java-apps-with-kubernetes-configmaps-a)配置服务器更原生的解决方案是执行消息传递以提醒服务新配置可用-请查看https://dzone.com/articles/spring-cloud-config-server-for-the-impatient

末尾的链接