我有许多遗留服务正在运行,它们从磁盘读取它们的配置文件和一个单独的守护进程,当它们在 zookeeper 中更改时更新这些文件(有点类似于confd)。
对于大多数这些类型的配置,我们希望转移到像模型这样的更多环境变量,其中配置在 pod 的生命周期内是固定的。然而,我们需要将外部配置文件作为事实来源,因为服务正在从遗留模型过渡到 kubernetes。我很好奇在 kubernetes 中是否有一种干净的方法可以做到这一点。
我们正在追求的当前模型的简化版本是:
- 创建一个 docker 映像,该映像具有用于获取配置文件并将它们写入磁盘的实用程序。然后写入 /donepath/done 文件。
- 主图像等到完成的文件存在。然后允许正常的服务启动进行。
- 使用空的 dir 卷和卷挂载将 conf 从帮助映像获取到主映像。
我不断看到这个问题的实例,我“只是”需要在启动时将几个文件放入 docker 映像中(以允许每个 env/canary/etc 差异),并且每次运行所有这些机器似乎都是一种负担扔给开发人员。我很好奇在 kubernetes 或即将出现的情况下是否有更简单的方法可以做到这一点。