从现成的kubernetes秘密中将env变量加载到掌舵图中

时间:2020-06-18 07:48:52

标签: kubernetes .net-core kubernetes-helm

我目前正在通过一个网络核心项目在AKS上创建Pod。问题是我有一个我之前在管道中创建的appsettings.json生成的秘密。在部署阶段,我将这个秘密加载到Pod本身的内部。我要实现的是从Kubernetes机密中读取值,并将其作为Hev图表内的env变量加载。任何帮助表示赞赏,谢谢:)

2 个答案:

答案 0 :(得分:1)

请查看如何use secret as environmental variable

作为单个变量

containers:
- name: mycontainer
  image: redis
  env:
    - name: SECRET_USERNAME
      valueFrom:
        secretKeyRef:
          name: mysecret
          key: username

还是整个秘密

containers:
  - name: test-container
    image: k8s.gcr.io/busybox
    command: [ "/bin/sh", "-c", "env" ]
    envFrom:
    - secretRef:
        name: mysecret

答案 1 :(得分:0)

您的机密不应该在您的 appsettings.json 中,因为它们最终会出现在您的源代码控制存储库中。 将 k8s 中的 secret 读入 helm chart 是你永远不应该尝试做的事情。

理想情况下,您的机密位于安全的机密存储(保险库)中,该存储或具有您的 k8s 托管应用程序可以调用的 API

或者(保管库)与 k8s 集成,将您的机密作为卷安装在 pod 中(该卷是内存中的只读存储)。

通过这种方式,您的机密只会保存在保险库中,以确保机密在静止和传输过程中得到加密。