如何重启Kubernetes服务的多个Spring Boot应用程序实例

时间:2018-12-18 22:45:02

标签: java spring-boot kubernetes

我在3节点kubernetes集群上进行了Spring Boot服务A的负载均衡部署。

我还需要启用快速配置管理,而无需重建和部署完整的重新烘焙映像。

为此,我整理了一个弹簧启动配置服务器,并在服务A上实现了Actuator重新启动,当在本地单实例部署上调用其/ restart端点时,它会刷新并加载从config-中获取的属性。服务器。

到目前为止很好,但是...

当将服务A部署到具有3、30或300个服务A实例的大规模k8s部署中时,如何实现上述目标?

呼叫/ refresh终结点必须由负载均衡器处理,就像集群上的任何其他REST呼叫一样,这意味着它被路由到服务实例之一。

在springboot-on-k8s中有一种标准方法可以让每个服务实例忽略LB吗?

2 个答案:

答案 0 :(得分:3)

我们实际上并没有使用执行器的重新启动,而是使用部署的rollingUpdate策略。当我们想“重启”豆荚时,我们发布一个kubectl补丁。

[-3.7073786, 40.4237274997222]
[-3.7022000999999998, 40.4052982997222]
[-3.69610249972222, 40.427829]
[-3.72050759972222, 40.4277548]

有关升级策略的良好文档。

https://www.google.com/url?sa=t&source=web&rct=j&url=https://medium.com/platformer-blog/enable-rolling-updates-in-kubernetes-with-zero-downtime-31d7ec388c81&ved=2ahUKEwjIqtbW_bvfAhUKRY8KHas6DEkQjjgwAnoECAkQAQ&usg=AOvVaw3HjD4CUoG4ma3HWxquaYjp&cshid=1545776336374

答案 1 :(得分:0)

我不知道执行此操作的标准模式。

与服务选择器匹配的每个应用程序Pod将被注册为该服务的端点。如果运行kubectl get endpoints,则应该看到支持服务的Pod的所有内部clusterIP。

您可以创建一些逻辑来为每个服务端点调用该/ refresh端点。