You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Vault Agent Injector将密钥渲染到子路径且不覆盖原目录文件?

解决方案:Vault Agent Injector 密钥注入子目录不覆盖原目录

方法一:直接指定子目录作为密钥路径

修改注解,将secret-volume-path设为目标子目录,Injector会自动将密钥渲染到该子目录,不会影响父目录的原有文件:

annotations:
  vault.hashicorp.com/secret-volume-path: "/app/conf"

注意:如果容器镜像中不存在/app/conf目录,Kubernetes会在挂载时自动创建该目录;若需要特定权限,可通过容器启动命令或Init容器提前创建并设置权限。

方法二:自定义挂载路径与SubPath

若需更灵活控制密钥在Volume中的存储位置,可拆分配置:

  1. 配置Injector将密钥渲染到Volume内的指定路径:
annotations:
  vault.hashicorp.com/secret-volume-path: "/secrets"
  1. 在Pod的容器挂载配置中,将Vault生成的Volume挂载到目标子目录(Injector默认生成的Volume名为vault-secrets):
spec:
  containers:
    - name: your-container
      volumeMounts:
        - name: vault-secrets
          mountPath: /app/conf
          # 可选:若需将密钥放到子目录下的子路径,添加subPath
          # subPath: vault-keys

此方式下,/app目录的原有内容完全保留,仅/app/conf目录被替换为Vault密钥内容。

方法三:挂载单个密钥文件(保留子目录原有文件)

若仅需替换子目录中的特定文件而非整个目录,可使用subPath挂载单个文件:

annotations:
  vault.hashicorp.com/secret-volume-path: "/secrets/config.yaml"
  vault.hashicorp.com/volume-mounts: "vault-secrets:/app/conf/config.yaml:subPath=config.yaml"

这样只会覆盖/app/conf/config.yaml文件,该目录下的其他文件不受影响。

内容的提问来源于stack exchange,提问作者鱼鱼鱼三条鱼

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:51:13