簡體   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