Vault Agent注入器:仅使用Init容器(禁用Sidecar)
仅用Vault Init容器注入环境变量、禁用Sidecar的实现方案
要实现只在启动阶段通过Vault注入环境变量、禁用Sidecar容器,你可以通过以下Pod注解配置:
vault.hashicorp.com/agent-inject-sidecar: "false":明确禁用Sidecar容器vault.hashicorp.com/agent-inject-init: "true":显式启用Init容器(默认已启用,加上配置更稳妥)
配置示例(Deployment片段)
apiVersion: apps/v1 kind: Deployment metadata: name: your-app spec: template: metadata: annotations: vault.hashicorp.com/agent-inject: "true" vault.hashicorp.com/role: "your-vault-role" vault.hashicorp.com/agent-inject-sidecar: "false" vault.hashicorp.com/agent-inject-init: "true" # 环境变量注入的示例配置 vault.hashicorp.com/agent-inject-secret-db-creds: "secret/path/to/db-creds" vault.hashicorp.com/agent-inject-template-db-creds: | {{- with secret "secret/path/to/db-creds" }} export DB_USER="{{ .Data.data.username }}" export DB_PASS="{{ .Data.data.password }}" {{- end }} spec: containers: - name: your-app-container image: your-app-image command: ["sh", "-c", ". /vault/secrets/db-creds && ./your-app"]
说明
- 配置完成后,Vault仅会启动Init容器,在应用容器启动前将密钥渲染到默认共享卷
/vault/secrets中,应用容器通过加载卷内脚本即可获取环境变量。 - 部署后可执行
kubectl describe pod <pod-name>验证:只会看到vault-agent-init类型的Init容器,不会出现vault-agent侧车容器。
内容的提问来源于stack exchange,提问作者Cruncher
相关产品推荐
相关产品推荐

