【问题标题】:Use a secret to store sensitive data in helm kubernetes在 helm kubernetes 中使用 secret 存储敏感数据
【发布时间】:2020-02-27 11:18:52
【问题描述】:

我在模板目录中有一个secret.yaml 文件,其中包含以下数据:

apiVersion: v1
kind: Secret
metadata: 
  name: appdbpassword
stringData:
  password: password

我也有一个 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: appdbconfigmap
data:
  jdbcUrl: jdbc:oracle:thin:@proxy:service
  username: bhargav

我正在使用以下吊舱:

apiVersion: v1
kind: Pod
metadata:
  name: expense-pod-sample-1
spec:
  containers:
    - name: expense-container-sample-1
      image: exm:1
      command: [ "/bin/sh", "-c", "--" ]
      args: [ "while true; do sleep 30; done;" ]
      envFrom:
      - configMapRef:
              name: appdbconfigmap
      env:
      - name: password
        valueFrom:
          secretKeyRef:
            name: appdbpassword
            key: password

当我使用 helm install 命令时,我看到 pod 正在运行,但如果我尝试在我的应用程序中使用环境变量 ${password},它就不起作用。它说密码错误。它不会抱怨用户名是 C​​onfigMap。仅当我使用 helm 时才会发生这种情况。如果我不使用 helm 并使用 kubectl 独立运行所有 YAML 文件,我的应用程序可以正确访问用户名和密码。

我这里有什么遗漏吗?

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:
    apiVersion: v1
    kind: Secret
    metadata:
      name: test-secret
    data:
      password : cGFzc3dvcmQK
    

    您还可以在将数据转换为 base64 格式的位置添加这样的秘密。而 stringData 在您创建机密时会自动执行此操作。

    尝试像这样在环境中添加秘密

    envFrom:
            - secretRef:
                name: test-secret
    

    【讨论】:

    • 会有什么不同?我猜他们俩都做同样的事情。
    • @BHARGAVBEHARA 两者都是相同的,但是您使用密钥名称 key 添加整个秘密而不是使用密钥来填充环境。
    猜你喜欢
    • 2020-09-29
    • 2011-08-15
    • 2017-09-05
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多