ConfigMap 主要的用法有两种,一种是挂载变成环境变量,第二种是挂载变成目录或者文件
但是实际还有一种情况,无法覆盖到,那就是数据库连接配置,有 N 个项目对应 N 个 pod 。
假如我创建一个 Secret,其中包含线上的数据库连接地址、和账号密码配置。(键值对映射方式)
那么我怎么把对应的配置文件中的数据配置替换成 Secret 中的
PS:可以通过挂载文件的方式覆盖项目配置文件,但是数据库连接配置不能这样子,假如我有 N 个项目,我要修改数据库密码,不可能每个项目对应的 configmap 都去修改一遍这个效率太低了
我想到的方式是假如 dockerfile 中的 CMD 命令是启动 catalina.sh ,那么新建一个 sh 脚本文件,里面包含读取
Secret 环境变量(或者读取挂载文件)中的数据库配置信息然后替换掉对应的项目中的配置,再启动 catalina.sh 。
PS:pod yaml 文件 containers 中的 command 改成新建的 sh 脚本文件( command 可以覆盖 dockerfile CMD )
不晓得还有没有其他的方式?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.