文章内容
1.问题分析
2.解决办法
3.总结分析
和以前单体应用不同,在微服务的架构下,多环境,多版本,多实例的特点更加明显,特别是添加了CI/CD流程之后,服务配置文件的管理显得额外重要;目前,也有一些已有的实现,比如kubernetes中的configMap以及CRD。
注:以下所说的配置不包括服务发布的配置(比如,yaml文件),这些应该集成在CI/CD流程中;
1.问题分析
问题列表
1.为了保证服务的高可用性,一般会创建多个服务的实例(比如,Docker容器),如何保证这些实例获取到的配置是一致的?
2.一般服务的更新并不一定需要更新配置,服务版本发布如何和配置版本分离?
3.同一个服务,可能需要在不同的环境中运行,如何保证他们获取到的配置和环境相匹配?
4.如何分别对待敏感配置和一般配置?
2.解决办法
下面以常见的第三方接口调用信息为例(API入口,授权Token信息)
2.1 基于configMap和secret的解决办法
Kubernetes的configMap和secret天生就是用来这样的事的。下面简单介绍一下如何使用configMap和secret保存服务配置;