3

我正在部署一个 Spring Boot 应用程序,并且正在考虑用于外部化配置的各种选项。我开始了解以下选项。

1) ConfigMap
2) properties/yaml file in Git and a process in container to watch for changes and restart the application with new properties if there are any changes.

这不仅与应用程序有关,而且与其他组件以及代理(apache RP,nginx)/负载均衡器等有关。

谢谢

4

2 回答 2

4

两者都是处理配置的好选择。

Git 方法具有版本化配置的优势,但您需要一个额外的容器来进行编码和维护。

对我来说 configmap 是最好的选择。由于它是 Kubernetes 原生对象,您不需要 git repo 或 git 容器,它只是存储和保存在 etcd 中,更易于维护。

此外,还有一些开源项目可以帮助您使用 configmaps:我使用kube-backup拥有每个配置的版本控制副本,并使用configmapcontroller在 configmap 更改时自动推出部署。

于 2018-06-22T09:42:31.600 回答
2

如果您正在运行共享配置的多个服务,最好的方法是使用Spring Cloud Config。这会运行一个由 Git 支持的配置服务器,应用程序从那里获取配置。

对于更简单的解决方案,我更喜欢 ConfigMaps(或 Secrets)。Spring 和 Kubernetes 很好地集成了用于处理 ConfigMap 和 Secrets,包括在更改时重新加载:Spring Cloud Kubernetes。该项目目前处于孵化阶段,但已经相当成熟(因为它已经在 Red Hat/Fabric8 下开发了几年)。

于 2018-06-22T11:58:17.300 回答