"将"启动时的配置文件

时间:2015-12-22 22:27:36

标签: kubernetes confd

我有许多遗留服务从磁盘读取配置文件,还有一个单独的守护程序,当它们在zookeeper中更改时更新这些文件(有点类似于confd)。

对于大多数这些类型的配置,我们希望转移到更像环境变量的模型,其中配置在pod的生命周期内是固定的。然而,当服务从遗留模型转换为kubernetes时,我们需要将外部配置文件作为事实的来源。如果在kubernetes中有一个干净的方法,我很好奇。

我们正在追求的当前模型的简化版本是:

  1. 创建一个docker镜像,该镜像具有获取配置文件并将其写入磁盘文件的实用程序。然后写一个/ donepath / done文件。
  2. 主图像一直等到完成文件存在。然后允许正常的服务启动进行。
  3. 使用空的dir音量和音量调整来将辅助图像中的conf添加到主图像中。
  4. 我一直看到这个问题的实例我只是"只是"需要在启动时将几个文件放入docker镜像中(以允许per-env / canary / etc方差),并且每次运行所有这些机器似乎都是开发人员的负担。我很好奇是否有更简单的方法在kubernetes或地平线上做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以在Dockerfile中使用ADD命令。它用作ADD文件/路径/输入/泊坞窗。这将允许您快速将完整文件添加到容器中。在构建容器时,需要将要添加到映像的文件与Dockerfile放在同一目录中。您也可以通过这种方式添加tar文件,这将在构建期间进行扩展。

另一个选项是Dockerfile中的ENV命令。这会将数据添加为环境变量。