在部署期间将机密值注入配置映射,而无需使用环境变量



我有这样的配置图

apiVersion: v1
kind: ConfigMap
metadata:
namespace: develop
name: test-config
data:
app.conf: |
connection conn1
address 127.0.0.1:8080
user cluster1
password: <HERE COPY PASS FROM SECRET>

app.conf 部分作为配置文件挂载到容器内使用

spec:
replicas: 1
...
spec:
containers:
- name: container-name
...
volumeMounts:
- name: test-config-vol
mountPath: /etc/app/app.conf
subPath: app.conf
volumes:
- name: test-config-vol
configMap:
name: test-config

读取该文件的应用程序无法读取环境变量,我无法更改该行为,它是第三方应用程序。

我想知道如何在 pod 部署期间将密码从密钥注入密码字段

你不能,你可以做的是用密码挂载一个 Kuberentes 秘密 - 请参阅此处的文档。因此,您最终将拥有 2 个文件 - 一个来自配置映射,一个来自机密。

如果您的应用不支持多个配置文件,则必须将整个配置文件存储在密钥而不是配置映射上。

另外,请注意,Kubernetes 机密不能存储在源代码管理中,因为机密数据是使用 base64 编码的(有关更多详细信息,请参阅此处)。此问题有多种解决方案,请查看我的帖子

最新更新