[英]How to make existing configmaps use kubernetes secrets
我是 kubernetes 的新手,我必须为现有的带有硬编码密码的配置映射实现 kubernetes 机密。
我有每个 pod 的 2 个配置图,1 个 settings.yaml 和其他 settings_override.yaml。 我必须在我保留 base64 机密的地方设置覆盖文件读取环境变量。 我已经创建了秘密,并且可以在 printenv 之后在 pod 中看到它们。
请建议我如何让我的 settings_override.yaml 文件读取这些环境机密。
注意:如果我只是从 settings_override.yaml 文件中删除键:值对,那么它是从 settings.yaml 中选择值,而不是从我的 env 变量中。
设置和setting_override文件供参考:
apiVersion: v1 data: setting.json: | { "test": { "testpswd": "test123", "testPort": "123", }, }
apiVersion: v1 data: setting_override.json: | { "test": { "testpswd": "test456", "testPort": "456", }, }
据我所知,在 Kubernetes 中,您想要完成的事情是不可能的。
一般提醒: Secrets
用于机密数据, ConfigMaps
用于非机密数据。
您不能将Secret
导入ConfigMap
,反之亦然。
但是,您可以像这样从Secret
( secretKeyRef
) 或ConfigMap
( configMapKeyRef
) 填充环境变量:
env:
- name: FOO
valueFrom:
configMapKeyRef:
name: nonconfidentialdatahere
key: nonconfidentialdatahere
- name: BAR
valueFrom:
secretKeyRef:
name: confidentialdatahere
key: confidentialdatahere
因此,我建议您将ConfigMap
中的端口和Secret
中的密码读取到 pod/deployment 声明中的环境变量中,然后通过传递这些环境变量来启动您想要的任何服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.