我有一个这样的配置图
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部署期间如何从秘密中将密码注入密码字段
答案 0 :(得分:1)
您不能,您只能用密码安装Kuberentes secret-请参阅文档here。因此,您最终将拥有2个文件-一个来自配置映射文件,另一个来自秘密文件。
如果您的应用不支持多个配置文件,则必须将整个配置文件存储在密钥上,而不是存储在配置映射上。
此外,请注意,Kubernetes机密无法存储在源代码控制中,因为机密数据是使用base64编码的(有关更多详细信息,请参见here)。这个问题有多种解决方案,请查看我的post