我在 Kubernetes 中使用 vault 进行秘密管理,并希望我所有的秘密都在 pod env 中。我正在使用这个部署文件

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

我可以将我的秘密注入特定路径

/vault/secret
,但无法将它们存储为 pod env,pod env 中没有秘密。路径
/vault/secrets
上的 pod 中的文件已存在。之后我有 2 个问题。

为什么它不起作用,有什么办法可以将它注入 pod env 中吗?

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
  labels:
    app: vault-agent-demo
spec:
  selector:
    matchLabels:
      app: vault-agent-demo
  replicas: 1
  template:
    metadata:
      annotations: 
        vault.hashicorp.com/agent-inject: "true"
        
        vault.hashicorp.com/agent-inject-status: "update"
        vault.hashicorp.com/agent-inject-secret-sendmail: "secret/sendmail-api"
        vault.hashicorp.com/agent-inject-template-sendmail: |
          {{- with secret "secret/sendmail-api" -}}
          export APIKEY="{{ .Data.data.APIKEY }}"
          {{- end }}
        
        vault.hashicorp.com/agent-inject-status: "update"
        vault.hashicorp.com/agent-inject-secret--config: "secret/payment-api"
        vault.hashicorp.com/agent-inject-template--config: |
          {{ with secret "secret/payment-api" -}}
          APIKEY="{{ .Data.data.APIKEY }}""
          {{- end }}
        vault.hashicorp.com/role: "myapp"
      labels:
        app: vault-agent-demo
    spec:
      serviceAccountName: app
      containers:
      - name: app
        image: jweissig/app:0.0.1
        command:
            ['sh', '-c']
        args:
            ['source /vault/secrets/ && /app/web']
kubernetes hashicorp-vault
1个回答
0
投票

要在 Pod 的环境变量 中使用Secret,请按照以下步骤操作:

对于 Pod 规范中的每个容器,将密钥的环境变量添加到以下字段。

env[].valueFrom.secretKeyRef

修改图像或命令行,使程序在指定的环境变量中查找值。

有关详细信息,请参阅官方文档并查看由Madeesha编写的文档

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