48、容器中的应用配置管理

容器中的应用配置管理

1. 运行时加载配置

在容器环境中,从运行时加载配置是一个重要的话题。将机密设置存放在打包的环境文件中可能存在安全风险,因为这些信息可能被试图攻击系统的人利用。将机密设置移到运行时应用的覆盖文件中,打包的环境文件中剩下的敏感信息就会减少。同时,将一些设置放在源代码控制中,而另一些放在配置管理系统中,这种分割方式也不太理想。

容器的优势在于可以根据自身喜好选择配置模式。不同的组织和技术栈可能适用不同的方法,如果需要处理多个技术栈,情况会变得更加复杂。

1.1 Go 语言的 Viper 配置模块

Go 语言有一个流行的配置模块 Viper,它提供了与 .NET Core 库或 node - config 类似的功能。使用步骤如下:
1. 将 Viper 模块添加到包列表中。
2. 在应用代码中指定配置目录的路径,并决定是否引入环境变量来覆盖配置文件。

在一个图像画廊应用中使用 Viper,其配置加载层次如下:
- 首先从 Docker 镜像中填充的 config 目录加载文件。
- 特定环境的文件从 config - override 目录加载,该目录在镜像中为空,可以作为容器文件系统挂载的目标。
- 环境变量会覆盖文件设置。

Viper 支持比其他示例更广泛的配置文件语言,如 JSON、YAML,在 Go 世界中流行的格式是 TOML。TOML 很适合作为配置文件,因为它在代码中很容易映射到字典,并且比 JSON 或 YAML 更易读。以下是图像画廊应用的 TOML 配置示例:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值