【问题标题】:How to make existing configmaps use kubernetes secrets如何使现有的 configmaps 使用 kubernetes 机密
【发布时间】:2020-03-09 02:09:26
【问题描述】:

我是 kubernetes 的新手,我必须为现有的 configmap 实现 kubernetes 机密,并使用硬编码密码。

每个 pod 有 2 个配置映射,1 个 settings.yaml 和其他 settings_override.yaml。我必须在我保存 base64 机密的地方设置覆盖文件读取环境变量。 我已经创建了秘密,并且可以在 printenv 之后在 pod 中看到它们。

请建议我如何让我的 settings_override.yaml 文件读取这些环境机密。

注意:如果我只是从 settings_override.yaml 文件中删除 key:value 对,那么它是从 settings.yaml 而不是我的 env 变量中选择值。

Settings 和 setting_override 文件供参考:

apiVersion: v1 data: setting.json: | { "test": { "testpswd": "test123", "testPort": "123", }, }

apiVersion: v1 data: setting_override.json: | { "test": { "testpswd": "test456", "testPort": "456", }, }

【问题讨论】:

  • 您能否添加您的settings.yamlsettings_override.yaml 以便更好地理解,删除任何机密内容。
  • 嗨,请在下面找到示例:apiVersion: v1 data: setting.json: | { "test": { "testpswd": "test123", "testPort": "123", }, } ********************************* ****************************** apiVersion: v1 data: setting.override.json: | { "test": { "testpswd": "test456", "testPort": "456", }, } 对于 settings_override 文件,我创建了 test_testpswd 和 test_testport 作为环境变量。我想删除这些硬编码的值,但不幸的是它没有选择 env 变量,而是从设置文件中获取值。
  • @Here_2_learn -- 我在上面的评论中添加了详细信息。抱歉,代码格式错误。
  • 这是错误的代码格式,因为您应该edit your question 而不是将更新发布到 cmets; cmets 的空间非常有限,并且(如您所见)不能很好地格式化代码块。请将评论内容移至您的问题中
  • @AnuThakur 我不确定你到底想做什么。但我可以确保您想要更新 configmap,您将需要其他一些能够读取您的 pod 环境并在 configmap 上执行更新操作的应用程序。

标签: kubernetes openshift configmap kubernetes-secrets


【解决方案1】:

据我所知,您想要完成的工作在 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 声明中的环境变量中,然后通过传递这些环境变量来启动您想要的任何服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-08
    • 2021-05-22
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多