ghcr.io/enix/kube-image-keeper

ghcr.io/enix/kube-image-keeper:1.11.0-beta.3-alpine

ghcr.iolinux/amd641.11.0-beta.3-alpine大小: 56.52 MB更新于 2026年6月21日
让 AI 帮你使用轩辕镜像?

如果你使用 DeepSeek元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AIDeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

kube-image-keeper (kuik)

kuik(发音为/kwɪk/,类似“quick”)是kube-image-keeper的简称。

✅ 其主要目标是严格在其运行的Kubernetes集群内最大限度地提高Pod镜像的可用性

✅ 其次要目标是通过将对Kubernetes原语的操作降至最低,确保万无一失的可靠性

核心机制

它依赖于三个核心机制:

  • 镜像路由:在Pod创建过程中动态重写镜像路径,将其重定向到可用的registry。
  • 镜像复制:跨registry镜像本地集群使用的镜像,构建一个虚拟的高可用registry。
  • 镜像监控:持续跟踪本地集群内使用的Pod镜像在多个registry中的可用性。

[!NOTE] 镜像路由由轻量级MutatingWebhook在Pod创建时执行,当源registry不可用时,该Webhook会自动重写镜像路径。

kube-image-keeper由Enix开发,是经过实战检验的解决方案,目前已在多个Kubernetes集群的生产环境中运行。

目录

文档、概念和用例可在此处获取:kuik.enix.io

  • 快速开始
  • 发布与路线图
  • 当前已知限制
  • 为什么是版本2?

🚀 快速开始

我们依赖cert-manager Custom Resources来管理kuik的mutating webhook证书,因此您需要https://cert-manager.io/docs/installation/%E3%80%82

VERSION=2.2.3
helm upgrade --install --create-namespace --namespace kuik-system kube-image-keeper oci://quay.io/enix/charts/kube-image-keeper:$VERSION

自定义资源定义(CRD)用于配置kuik的行为,例如其路由和镜像功能。这些在CRD参考中有详细描述。

要设置ImageSetMirror(或ClusterImageSetMirror),您首先需要配置一个registry,kuik将在其中复制匹配的镜像。然后生成一个具有拉取、推送和删除(如果启用清理)权限的令牌,并使用以下命令创建在ImageSetMirror中使用的密钥:

kubectl create secret docker-registry my-registry-secret --docker-server=my-registry.company.com --docker-username=my-username --docker-password=my-token

如果您让kuik清理registry中的过期镜像,您仍需自行配置垃圾回收,因为kuik仅删除镜像引用。

📅 发布与路线图

Kuik v2已达到正式发布(General Availability)状态,自v2.2.2版本起已具备生产环境就绪性 🚀

已发布功能

  • https://github.com/enix/kube-image-keeper/releases/tag/v2.1.0 我们在2026年法国云原生日大会(Cloud Native Days France 2026)上宣布了2.0版本(正式发布)的推出
  • https://github.com/enix/kube-image-keeper/releases/tag/v2.1.0 路由和复制的优先级现已支持
  • https://github.com/enix/kube-image-keeper/releases/tag/v2.1.1 修复了多集群上的多个Kuik实例对单个registry的并发访问问题(特别是垃圾回收机制相关)
  • https://github.com/enix/kube-image-keeper/releases/tag/v2.2.0 完成了镜像监控功能的实现,并提供了相关指标

计划功能

  • https://github.com/enix/kube-image-keeper/milestone/1
  • https://github.com/enix/kube-image-keeper/milestone/3
  • https://github.com/enix/kube-image-keeper/milestone/2

🚧 当前已知限制

  • mutating webhook不支持Pod的Update调用
  • 不支持摘要标签,例如:@sha256:cb4e4ffc5789fd5ff6a534e3b1460623df61cba00f5ea1c7b40153b5efb81805
  • (Cluster)ImageSetMirror状态中未跟踪每个平台的镜像状态。因此:(1)Kuik无法报告给定镜像实际镜像了哪些架构——只要至少一个配置的平台可用,镜像就会被标记为成功,缺失的平台仅记录为警告;(2)在镜像已被复制后更改mirroring.platforms不会重新镜像或清理已复制的清单(添加或删除的平台仅适用于后续的镜像操作)

为什么是版本2?

尽管我们为kube-image-keeper v1版本所取得的成就感到自豪,但使用它常常令人头疼:部署困难、过于复杂,而镜像缓存功能虽然雄心勃勃,却经常引发太多问题。我们偏离了最初的目标:使kube-image-keeper成为任何集群都能轻松、无需思考即可安装的工具,帮助运维人员日常工作并提供信心。

我们从这次经验中学到了很多,而在v2版本中,我们重新开始!我们的重点是简化和易用性,同时提供相同甚至更多的功能!kuik应该易于安装和使用——将其添加到集群中时,您无需三思。我们的目标:您甚至会忘记它的存在,当registry宕机或镜像不可用时也不会察觉。

用户好评

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

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告