
如果你使用 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 agent auto-inject webhook是一个Kubernetes Mutating Webhook,可作为https://github.com/patoarvizu/vault-dynamic-configuration-operator%E7%9A%84%E9%85%8D%E5%A5%97%E5%B7%A5%E5%85%B7%EF%BC%8C%E4%B9%9F%E5%8F%AF%E7%8B%AC%E7%AB%8B%E9%83%A8%E7%BD%B2%E3%80%82%E5%AE%83%E8%83%BD%E5%A4%9F%E4%BF%AE%E6%94%B9Pod%E4%BB%A5%E8%87%AA%E5%8A%A8%E6%B3%A8%E5%85%A5Vault agent边车容器,包括从对应服务身份的ConfigMap中获取并渲染配置模板,同时修改Pod中所有容器的环境变量,注入指向边车代理的VAULT_ADDR环境变量。通过为工作负载(Deployment、StatefulSet、DaemonSet等)添加注解vault.patoarvizu.dev/agent-auto-inject: sidecar,即可在Pod创建时触发webhook进行修改。
VAULT_ADDR环境变量webhook可作为Deployment部署在Kubernetes集群中,需暴露为Service并接受TLS连接。以下是Deployment示例:
yamlkind: Deployment ... containers: - name: vault-agent-auto-inject-webhook image: patoarvizu/vault-agent-auto-inject-webhook:latest command: - /vault-agent-auto-inject-webhook - -tls-cert-file - /tls/tls.crt - -tls-key-file - /tls/tls.key ports: - name: https containerPort: 4443 volumeMounts: - name: tls mountPath: /tls volumes: - name: tls secret: secretName: vault-agent-auto-inject-webhook
上述配置假设存在名为vault-agent-auto-inject-webhook的Secret,其中包含tls.crt和tls.key文件。推荐使用https://github.com/jetstack/cert-manager/%E7%94%9F%E6%88%90%E6%AD%A4%E7%B1%BB%E8%AF%81%E4%B9%A6Secret%E3%80%82
需部署MutatingWebhookConfiguration资源,示例如下:
yamlapiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration metadata: name: vault-agent-auto-inject-webhook labels: app: vault-agent-auto-inject-webhook webhooks: - name: vault.patoarvizu.dev rules: - apiGroups: - "" apiVersions: - v1 operations: - CREATE - UPDATE resources: - pods failurePolicy: Ignore clientConfig: caBundle: ${CA_BUNDLE} service: name: vault-agent-auto-inject-webhook namespace: default path: /
clientConfig需与前面创建的Service匹配。caBundle字段需填入签名webhook TLS证书的CA公钥的base64编码值。若使用cert-manager,可通过cert-manager.io/inject-ca-from注解自动注入CA证书。
| 标志 | 描述 | 默认值 |
|---|---|---|
-tls-cert-file | TLS证书文件路径 | 无 |
-tls-key-file | TLS密钥文件路径 | 无 |
-annotation-prefix | webhook处理的注解前缀 | vault.patoarvizu.dev |
-target-vault-address | 远程Vault API地址 | https://vault:8200 |
-gomplate-image | 初始化容器使用的gomplate镜像 | hairyhenderson/gomplate:v3 |
-kubernetes-auth-path | Vault Kubernetes认证端点路径 | auth/kubernetes |
-vault-image-version | 边车容器使用的Vault镜像标签 | 1.3.0 |
-default-config-map-name | 默认Vault agent配置ConfigMap名称 | vault-agent-config |
-mount-ca-cert-secret | 是否挂载CA证书Secret到Vault agent容器 | false |
-ca-cert-secret-name | 目标命名空间中CA证书Secret名称 | vault-tls |
-cpu-request | Vault agent边车容器CPU请求 | 50m |
-cpu-limit | Vault agent边车容器CPU限制 | 100m |
-memory-request | Vault agent边车容器内存请求 | 128Mi |
-memory-limit | Vault agent边车容器内存限制 | 256Mi |
-listen-addr | 服务器监听地址 | :4443 |
-metrics-addr | Prometheus指标暴露地址 | :8081 |
webhook要求在目标Pod的命名空间(非webhook所在命名空间)中存在ConfigMap(默认名称为vault-agent-config,可通过-default-config-map-name修改),该ConfigMap需包含vault-agent-config.hcl键,其值为使用Go template编写的Vault agent配置模板,通过https://github.com/hairyhenderson/gomplate%E6%B8%B2%E6%9F%93%E3%80%82%E6%A8%A1%E6%9D%BF%E5%8F%AF%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9A
| 环境变量 | 说明 |
|---|---|
SERVICE | Pod关联的ServiceAccount名称 |
TARGET_VAULT_ADDRESS | -target-vault-address参数的值(或默认值) |
KUBERNETES_AUTH_PATH | -kubernetes-auth-path参数的值(或默认值) |
启用-mount-ca-cert-secret标志后,webhook会从-ca-cert-secret-name指定的Secret创建卷,并仅挂载到Vault agent容器的/opt/vault/certs/路径。此时vault-agent-config.hcl可使用Vault配置中的ca_cert字段,无需设置tls_skip_verify = true。
对于Job、CronJob等短期工作负载,可通过注解vault.patoarvizu.dev/agent-auto-inject: init-container将Vault agent注入为初始化容器。此时配置需包含exit_after_auth = true以确保认证后容器退出,并至少配置一个文件sink。webhook会自动为容器添加/vault-agent挂载卷作为文件sink路径。
若默认ConfigMap不适用于特定应用,可通过注解vault.patoarvizu.dev/agent-config-map指定目标命名空间中的其他ConfigMap名称。
webhook在-metrics-addr指定的地址(默认:8081)暴露Prometheus风格指标,包括:
admission_reviews_total:总准入审查次数admission_review_errors_total:准入审查错误次数admission_review_duration_seconds:准入审查持续时间服务器会监控-tls-cert-file指定的TLS证书文件变化,当文件修改时自动热重载证书。这通过https://github.com/radovskyb/watcher%E5%BA%93%E5%AE%9E%E7%8E%B0%EF%BC%8C%E9%80%82%E7%94%A8%E4%BA%8Ecert-manager%E7%AD%89%E8%87%AA%E5%8A%A8%E8%AF%81%E4%B9%A6%E8%BD%AE%E6%8D%A2%E5%B7%A5%E5%85%B7%E3%80%82
注意:由于Notary客户端技术问题,自2023年1月4日起,新镜像不再进行签名。镜像仍为多架构构建,并包含Git和GPG元数据,但启用Docker Content Trust时无法通过验证。
镜像包含以下Docker标签,可用于验证镜像内容与Git提交的一致性:
AUTHOR_EMAIL:作者***COMMIT_TIMESTAMP:提交时间戳GIT_COMMIT:Git提交IDGIT_TAG:Git标签(如有)SIGNATURE_KEY:GPG签名密钥ID可通过docker inspect命令查看这些标签,例如:
bashdocker inspect patoarvizu/vault-agent-auto-inject-webhook:c1201e30e90d9d8fd2f2f65f2552236013cdcbe8 | jq -r '.[0].ContainerConfig.Labels'
使用语义化版本标签(如patoarvizu/vault-agent-auto-inject-webhook:v0.5.0)及latest标签的镜像是多架构清单列表。此外,还有架构特定标签,格式为<版本>-<架构后缀>,例如v0.15.0-amd64。支持的架构及对应后缀:
linux/amd64:-amd64linux/arm64:-arm64linux/arm/v7:-arm7欢迎提交Issues或Pull Requests,包括但不限于拼写错误、问题咨询等。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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