
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Imago旨在简化Kubernetes集群中Docker镜像的持续交付流程。它能够识别Kubernetes中的Deployments、DaemonSets、StatefulSet和CronJobs配置,从Docker仓库获取最新镜像的SHA256摘要,并更新这些资源以使用最新镜像,或通过重启资源使Pod拉取最新镜像,确保集群中的Pod始终运行最新版本的镜像。
registry/image@sha256:...格式,确保配置文件中记录最新镜像。imagePullPolicy为Always),不修改资源配置中的镜像字段。Imago通过两种方式确保Pod使用最新镜像:
registry/image@sha256:...格式的完整路径。imago-config-spec注解中记录原始镜像规范,便于追溯。-check-pods)。rollout restart),促使Pod重新拉取最新镜像(假设imagePullPolicy配置为Always)。执行imago --help可查看所有参数,主要参数说明如下:
Usage of imago: -A 检查所有命名空间中的部署和守护进程集(简写)(默认false) -all-namespaces 检查所有命名空间中的部署和守护进程集(默认false) -check-pods 检查运行中Pod的镜像摘要(默认false) -docker-config string 用于拉取最新摘要的Docker配置文件(默认~/.docker/config.json) -field-selector string Kubernetes字段选择器 示例:metadata.name=myapp -kubeconfig string kube配置文件(默认"~/.kube/config") -l string Kubernetes标签选择器 警告:仅适用于Deployment、DaemonSet、StatefulSet和CronJob,不适用于Pod! -n value 检查指定命名空间中的部署和守护进程集(默认当前命名空间) -restart 滚动重启部署和守护进程集以使用更新的镜像,隐含-check-pods并假设imagePullPolicy为Always(默认false) -update 更新部署和守护进程集以使用更新的镜像(默认false) -x value 检查除指定命名空间外的所有命名空间中的部署和守护进程集(隐含--all-namespaces)
注意:默认情况下,Imago不会更新资源,需显式指定--update或--restart选项。
bashimago --update
输出示例:
2019/02/11 17:55:21 检查 default/Deployment/aptly: 2019/02/11 17:55:21 aptly ok 2019/02/11 17:55:21 nginx ok 2019/02/11 17:55:22 检查 default/Deployment/kibana: 2019/02/11 17:55:22 kibana ok 2019/02/11 17:55:22 nginx ok 2019/02/11 17:55:22 更新 default/Deployment/philpep.org 2019/02/11 17:55:22 检查 DaemonSet/fluentd: 2019/02/11 17:55:22 fluentd 需要从 r.in.philpep.org/fluentd 更新为 r.in.philpep.org/fluentd@sha256:6a92af8a9db2ca243e0eba8d401cec11b124822e15b558b35ab45825ed4d1f54 2019/02/11 17:55:22 更新 default/DaemonSet/fluentd
app=myapp的资源bashimago --all-namespaces -l "app=myapp" --restart
需安装Go环境:
bashgo get github.com/philpep/imago/... $(go env GOPATH)/bin/imago --help
需挂载本地kubeconfig文件:
bashdocker pull philpep/imago docker run --rm -it -u $(id -u) -v ~/.kube/config:/var/lib/imago/.kube/config philpep/imago --help
从https://github.com/philpep/imago/releases%E4%B8%8B%E8%BD%BD%E5%AF%B9%E5%BA%94%E5%B9%B3%E5%8F%B0%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%8C%E7%9B%B4%E6%8E%A5%E8%BF%90%E8%A1%8C%E3%80%82
可通过CronJob定期执行Imago,需创建ServiceAccount和CronJob资源:
bash# 应用ServiceAccount(包含必要权限) kubectl apply -f https://raw.githubusercontent.com/philpep/imago/master/deploy/serviceaccount.yaml # 应用CronJob(默认每天运行一次) kubectl apply -f https://raw.githubusercontent.com/philpep/imago/master/deploy/cronjob.yaml
Imago会从~/.docker/config.json(Docker镜像中路径为/var/lib/imago/.docker/config.json)读取Docker仓库凭证。若集群中资源使用imagePullSecrets拉取私有镜像,需将对应的secret挂载到Imago的运行环境中(如在Pod中挂载secret到/var/lib/imago/.docker/config.json路径)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务