k8s configMap挂载(项目配置文件放到configMap中,不同环境不同配置)

背景说明

项目对接配置文件加密,比如数据库密码、redis密码等。但是密文只能放到指定的配置文件中(important.properties),该配置文件又不能接收环境变量,所以就很难区分不同环境的不同配置(不同环境的数据库密码、redis密码一般都不一样)。

pom.xml解决方案

在pom.xml中通过指定profiles解决,同时在build下开启@@替换变量的功能。如下图:
在这里插入图片描述
开启@@替换变量
在这里插入图片描述
然后再important.properties中用@符号获取pom.xml里面的值
在这里插入图片描述

configMap解决方案

再yml部署文件中(k8s),将important.properties文件的内容放到configMap中,然后将configMap挂载到编译后的important.properties文件地址下。这样只要进行部署,important.properties文件的内容就会被yml部署文件里的内容替换。
然后不同的环境配置不同的yml即可。核心配置如下:
configMap中important.properties文件的内容:
在这里插入图片描述
挂载目录配置:
在这里插入图片描述

Kubernetes (k8s) 中,ConfigMap是一种持久化的键值存储,用于管理应用的配置。如果你想更改已经挂载到Pod内的ConfigMap配置文件的权限为读写,你需要通过以下几个步骤操作: 1. 首先,确认你的Pod已经正确地从ConfigMap挂载配置文件。通常会在Pod的定义文件(如`Deployment`, `StatefulSet`或`PodSpec`)中的`volumeMounts`部分指定。 2. 登录到运行Pod所在的节点,可以使用kubectl命令行工具,或者通过云提供商提供的控制台访问容器内部。例如: ``` $ kubectl exec -it <pod-name> /bin/bash ``` 3. 在容器内,你可以使用Linux的`chmod`命令改变文件权限。假设配置文件位于`/path/to/config-file`,你将需要给予所有用户读写权限: ``` chmod ugo+rwx /path/to/config-file ``` 其中,`u`代表用户,`g`代表组,`o`代表其他,`+rwx`分别表示读、写和执行权限。 4. 保存并退出容器。如果你是在容器内部直接改权限,这一步骤会立刻生效;如果需要更新整个Pod,你可以提交一个新的Pod配置并重启Pod,新的权限设置才会生效。 5. 最后,检查权限是否已更改,可以再次查看文件的详细权限信息: ``` ls -l /path/to/config-file ``` 注意:直接在容器里修改权限可能会带来安全风险,因为它允许所有用户对配置文件有写权限。通常更推荐在创建ConfigMap时就设定好合适的权限,并在应用层面处理配置文件的读写。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值