我们正在将我们的ruby微服务转移到kubernetes,我们曾经在config/application.yml中保存特定于环境的配置。使用kubernetes,您可以为每个服务创建特定于环境的文件,例如config/kubernetes/production.yml等。
虽然kubernetes pod配置文件能够保存环境变量,但您似乎无法在其中真正保存结构化数据。
例如,在application.yml中,我们有
development: &development
process:
notifier:
type: 'terminal-notifier'
...
production: &production
process:
notifier:
type: 'airbrake'
api_key: 'xxxx'
host: 'xxx.xxx.com'
...使用kubernetes继续这种实践并打破application.yml中的环境是合理的,还是kubernetes对于为pod提供结构化配置有其他一些最佳实践?
注意,在迁移所有服务之前,我们基本上必须保持这样的配置:
kubernetes_staging:
<<: *staging
...发布于 2015-11-10 16:20:57
您可以通过几种方法来做到这一点,一种是继续在单个文件中执行您要做的事情,另一种是使用标签来指定要使用哪个环境的配置,另一种是使用名称空间。我个人建议使用名称空间,这样您就可以为每个环境拥有单独的.yml文件,这些环境可能产生相同的吊舱,但配置不同,因此要做到这一点,您可以使用暂存、prod等名称空间。名称空间也是拥有相同的kubernetes集群的一种很好的方式,它具有分阶段和生产的概念。此外,还可以为某些命名空间指定权限。
下面是名称空间https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/design/namespaces.md上的文档
https://stackoverflow.com/questions/33494763
复制相似问题