将文件库秘密注入Kubernetes Pod环境变量中

问题描述 投票:0回答:4

我正在尝试在需要PostgresSQL的Kubernetes环境中安装Sonarqube。我正在使用外部Postgres实例,并且在Vault中设置了crednetials kv机密。SonarQube掌舵图在容器中创建一个环境变量,该变量使用Postgres的用户名和密码。

如何将我的保险柜中的秘密注入到Kubernetes上运行的sonarqube pod的环境变量中?

创建Kubernetes机密并在掌舵图中使用该机密的方法是可行的,但是我们正在管理Vault上的所有机密,需要将Vault机密注入到Pod中。

谢谢

postgresql kubernetes sonarqube hashicorp-vault kubernetes-secrets
4个回答
0
投票

您需要使用将与Vault对话并检索值的父进程,然后运行您的真实进程。 https://github.com/hashicorp/envconsul仅是Vault小组的官方工具,但是如果您要查找的话,还有许多其他选择。



0
投票

kubernetes文档(https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables)有一个示例YAML,其中用秘密填充了环境变量。

apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
      - name: SECRET_USERNAME
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: username
      - name: SECRET_PASSWORD
        valueFrom:
          secretKeyRef:
            name: mysecret
            key: password
  restartPolicy: Never

0
投票

如果在使用控制台边卡容器注入机密时遇到问题,并且发现很难设置,则可以使用此方法:https://github.com/DaspawnW/vault-crd

这是库定制资源定义,它直接将库环境变量同步到kuberntes secret,因此现在您可以直接将密钥添加到POD。用secretref

vault crd创建一个pod,您必须在其中传递Vault Service名称或URL,使用该应用程序可以使用该应用程序连接到Vault,并且在Vault值更改时,它将自动将值同步到kubernetes secret。

https://vault.koudingspawn.de/

© www.soinside.com 2019 - 2024. All rights reserved.