如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是一个Docker容器,用于通过Vault认证,使用kubectl或helm工具将应用部署到Kubernetes集群。支持开发本地手动部署和CI流水线自动化部署场景,可灵活配置工具版本及secret管理。
该容器主要适用于两种场景:
从个人工作站手动部署到Kubernetes集群(通过kubectl或helm),支持LDAP或VAULT_TOKEN环境变量认证。
LDAP方式示例:
bashdocker run --rm -it \ --name=kube-vault-deploy \ -e KUBE_CLUSTER=blue.my-domain.com \ -e VAULT_ADDR=https://vault.my-domain.com:8200 \ -e VAULT_KUBE_PATH=secret/kubernetes/blue.my-domain.com/kube-config \ -v ~/.vault-token-deploy:/vault-token:rw \ -v $(pwd)/deploy:/scripts:ro \ readytalk/kube-vault-deploy
从Jenkins/Travis等CI工具进行脚本化/自动化部署,需传入VAULT_TOKEN进行认证。
示例:
bashdocker run --rm \ --name=kube-vault-deploy \ -e AUTO_BUILD=true \ -e KUBE_CLUSTER=blue.my-domain.com \ -e VAULT_ADDR=https://vault.my-domain.com:8200 \ -e VAULT_KUBE_PATH=secret/kubernetes/blue.my-domain.com/kube-config \ -e VAULT_TOKEN=$VAULT_TOKEN \ -v $(pwd)/deploy:/scripts:ro \ readytalk/kube-vault-deploy
可通过-e参数传递以下环境变量自定义容器行为:
| 变量名 | 描述 | 默认/必填 |
|---|---|---|
VAULT_ADDR | Vault实例的完整地址(如https://vault.my-domain.com:8200) | 必填 |
VAULT_TOKEN | Vault认证令牌,若未设置且AUTO_BUILD=false则提示输入LDAP凭据 | 可选 |
AUTO_BUILD | 控制认证机制:设为true时不提示LDAP凭据,若VAULT_TOKEN未提供则失败 | 默认false |
KUBE_CLUSTER | 目标Kubernetes集群名称(如blue.my-domain.com) | 必填 |
SECRET_CONFIG | 从Vault拉取secret的JSON配置文本 | 可选 |
SECRET_CONFIG_PATH | secret配置文件路径(仅当SECRET_CONFIG未设置时使用) | 可选 |
HELM_MATCH_SERVER | 是否下载与集群Tiller版本匹配的helm | 默认true |
HELM_VERSION | 覆盖容器内helm版本 | 可选 |
KUBE_MATCH_SERVER | 是否下载与集群版本匹配的kubectl | 默认true |
KUBE_VERSION | 覆盖容器内kubectl版本 | 可选 |
KOPS_VERSION | 覆盖容器内kops版本 | 可选 |
VAULT_MATCH_SERVER | 是否下载与集群版本匹配的vault | 默认true |
VAULT_VERSION | 覆盖容器内Vault版本 | 可选 |
通过-v参数映射以下卷:
| 容器路径 | 权限 | 描述 |
|---|---|---|
/scripts | ro | 挂载主机上的部署脚本目录,供容器访问 |
/vault-token | rw | 存储认证后的Vault令牌(建议生产/流水线不使用,本地开发可挂载到~/.vault-token) |
/bin-cache | rw | 缓存自定义工具版本(如kubectl、vault),避免重复下载 |
可通过以下方式传入secret配置(定义从Vault拉取的secret值,格式参考https://github.com/ReadyTalk/vault-to-envs%EF%BC%89%EF%BC%9A
SECRET_CONFIG环境变量,包含JSON配置文本secret_config.json文件挂载到容器工作目录需将部署脚本目录挂载到容器的/scripts路径。容器默认执行该目录下的deploy.sh脚本启动部署,脚本可结合kubectl/helm及自定义环境变量实现部署逻辑。
假设项目结构如下:
deploy/ │ deploy.sh │ └── helm_chart/ │ │ Chart.yaml │ │ values.yaml │ │ values-dev.yaml │ │ values-prod.yaml │ │ │ └───templates/ │ │ deployment.yaml │ │ service.yaml │ │ ... src/ │ ... lib/ │ ... README.md ...
deploy/deploy.sh内容:
bash#!/bin/bash helm upgrade --values helm_chart/values-$HELM_ENV.yaml $HELM_ENV-release helm_chart/
从项目根目录执行部署:
bashdocker run --rm -it \ --name=kube-vault-deploy \ -e VAULT_ADDR=https://vault.my-domain.com:8200 \ -e KUBE_CLUSTER=blue.my-domain.com \ -e VAULT_KUBE_PATH=secret/kubernetes/blue.my-domain.com/kube-config \ -e HELM_ENV=dev \ -v $(pwd)/deploy:/scripts:ro \ readytalk/kube-vault-deploy
执行流程:
VAULT_TOKEN,提示输入LDAP凭据secret/kubernetes/blue.my-domain.com/kube-config获取Kubernetes配置deploy.sh脚本HELM_ENV为自定义变量,用于选择helm values文件您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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