我正在部署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)/负载均衡器等其他组件也相关。
谢谢
答案 0 :(得分:3)
两者都是处理配置的好选择。
Git方法具有版本控制配置的优点,但是您需要额外的容器进行编码和维护。
对我来说,configmap是最好的选择。由于它是Kubernetes的本机对象,因此您不需要git repo或git容器,它只是存储和保留在etcd中,更易于维护。
此外,有一些开源项目可以帮助您使用configmap:我使用kube-backup来获取每个配置的版本副本,并使用configmapcontroller在configmap更改时自动推出部署
答案 1 :(得分:1)
如果您正在运行共享一个配置的多个服务,则最好的方法是使用Spring Cloud Config。这将运行由Git支持的配置服务器,应用程序将从那里获取配置。
对于一个更简单的解决方案,我更喜欢ConfigMaps(或Secrets)。 Spring和Kubernetes很好地集成在一起,用于处理ConfigMap和Secrets,包括在更改时重新加载:Spring Cloud Kubernetes。该项目目前正在孵化中,但已经相当成熟(因为它已经在Red Hat / Fabric8下开发了几年)。