繁体   English   中英

如何使现有配置映射使用 kubernetes 机密

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM