如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Vault CSI Provider 是 HashiCorp Vault 与 Kubernetes https://github.com/kubernetes-sigs/secrets-store-csi-driver 的原生集成组件。其核心功能是为 Kubernetes 用户提供安全、便捷的方式,实现从 Vault 检索敏感 secrets 并将其挂载到 Pod 中的能力,避免 secrets 以明文形式存储在 Kubernetes Secrets 中,增强敏感信息的生命周期管理和访问控制。
官方推荐通过 https://github.com/hashicorp/vault-helm 安装,该 Chart 已集成 Vault CSI Provider 组件。
添加 Helm 仓库
bashhelm repo add hashicorp https://helm.releases.hashicorp.com helm repo update
安装 Vault Helm Chart
启用 CSI Provider 组件(默认已启用,可通过参数确认):
bashhelm install vault hashicorp/vault \ --namespace vault \ --create-namespace \ --set "server.enabled=false" \ # 若已独立部署 Vault 服务,可禁用内置 Vault Server --set "injector.enabled=false" \ # 若无需 Sidecar 注入,可禁用 --set "csi.enabled=true" # 确保 CSI Provider 启用
验证安装
确认 CSI Provider DaemonSet 正常运行:
bashkubectl get daemonset -n vault vault-csi-provider
Vault CSI Provider 以 DaemonSet 形式运行在每个节点,以下为核心部署片段(由 Helm Chart 自动生成,供参考):
yaml# DaemonSet 示例(精简版) apiVersion: apps/v1 kind: DaemonSet metadata: name: vault-csi-provider namespace: vault spec: selector: matchLabels: app.kubernetes.io/name: vault-csi-provider template: metadata: labels: app.kubernetes.io/name: vault-csi-provider spec: containers: - name: vault-csi-provider image: hashicorp/vault-csi-provider:latest # 建议指定具体版本号 args: - --endpoint=unix:///csi/csi.sock - --log-level=info volumeMounts: - name: socket-dir mountPath: /csi volumes: - name: socket-dir hostPath: path: /var/lib/kubelet/plugins/csi-vault type: DirectoryOrCreate
| 参数 | 描述 | 默认值 |
|---|---|---|
csi.enabled | 是否启用 Vault CSI Provider 组件 | true |
csi.image.repository | 镜像仓库地址 | hashicorp/vault-csi-provider |
csi.image.tag | 镜像标签(版本号) | latest(建议指定具体版本,如 1.4.1) |
csi.logLevel | 日志级别(trace/debug/info/warn/error) | info |
csi.vaultAddress | Vault 服务地址(若未指定,需在 SecretProviderClass 中配置) | 未设置 |
csi.tls.enabled | 是否启用与 Vault 的 TLS 通信 | true |
csi.tls.caCert | 用于验证 Vault 服务端证书的 CA 证书(Base64 编码) | 未设置(默认使用系统 CA) |
定义从 Vault 检索 secrets 的规则,示例:
yamlapiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: vault-db-creds # 自定义名称,供 Pod 引用 spec: provider: vault # 固定为 "vault" parameters: vaultAddress: "https://vault.example.com:8200" # Vault 服务地址 vaultKubernetesMountPath: "kubernetes" # Vault Kubernetes 认证挂载路径 roleName: "db-app" # Vault 中定义的角色(需绑定 Pod 服务账户) objects: | - objectName: "db-password" # 挂载到 Pod 中的文件名 objectType: "secret" # Vault 秘密类型(secret/kv/transit 等) objectPath: "database/creds/my-app" # Vault 秘密路径 objectField: "password" # 提取的字段名(若不指定则获取整个秘密)
在 Pod 定义中引用 SecretProviderClass,通过 CSI 卷挂载 secrets:
yamlapiVersion: v1 kind: Pod metadata: name: app-with-vault-secret spec: serviceAccountName: db-app-sa # 需与 Vault 角色绑定的服务账户 containers: - name: app image: nginx:alpine volumeMounts: - name: vault-secrets # 卷名称,需与 volumes 中一致 mountPath: "/mnt/secrets" # 挂载路径 readOnly: true # 只读挂载,防止篡改 volumes: - name: vault-secrets csi: driver: secrets-store.csi.k8s.io # CSI Secret Store Driver 驱动名 readOnly: true volumeAttributes: secretProviderClass: "vault-db-creds" # 引用步骤 1 创建的 SecretProviderClass
进入 Pod 后,检查挂载路径下的 secrets 文件:
bashkubectl exec -it app-with-vault-secret -- cat /mnt/secrets/db-password
输出应为 Vault 中 database/creds/my-app 路径下的 password 字段值。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务