Registry v2:镜像仓库概览

Registry v2 是由 Operator 管理的、面向 集群的集成镜像仓库。它提供内部镜像存储、ImageStream 元数据、基于命名空间的访问控制、受管 service account pull 凭证以及镜像裁剪。

集成镜像仓库

该仓库作为集群工作负载运行在 image-registry-system 中。image-registry Deployment 负责处理 OCI push 和 pull 流量,而镜像元数据则通过聚合后的 image.alauda.io/v1 Image API 提供。

镜像数据和镜像元数据分开存储:

数据类型存储位置
镜像 blob 和 manifestConfig/cluster.spec.storage 中配置的存储后端,例如 PVC、S3 兼容存储、emptyDir 或其他受支持的后端。
镜像元数据 Image API 资源,例如 ImageImageStreamImageStreamTagImageStreamImageImageSignature

该仓库与 认证和 Kubernetes 授权集成。命名空间 RoleBinding 控制谁可以拉取、推送、删除、列出或裁剪镜像内容。

与旧版 Registry 相比的变化

领域旧版 RegistryRegistry v2
运行时命名空间通常为 cpaas-systemimage-registry-system
内部服务地址image-registry.cpaas-system.svcimage-registry.image-registry-system.svc:5000
生命周期管理平台插件或 chart 管理的 Registry 资源OLM 和 cluster-image-registry-operator
期望状态插件配置和旧版 Registry 配置configs.imageregistry.operator.alauda.io/clusterimagepruners.imageregistry.operator.alauda.io/cluster
镜像元数据Registry HTTP 视图和旧版元数据 API聚合后的 image.alauda.io/v1 Image API
外部暴露旧版 ingress 或 gateway 配置Config.spec.defaultRouteConfig.spec.routes[],渲染为 Kubernetes Ingress
pull 凭证旧版 service account pull secret 自动化内置的 Operator imagePullSecret controller
镜像限制旧版 Registry gateway ConfigMap带有 alauda.io 镜像资源的 Kubernetes LimitRangeResourceQuota
裁剪与 GC旧版 ac Registry 命令和脚本ImagePruner/clusterimage-pruner CronJob,以及 ac adm prune images / ac adm registry gc

常用术语

术语含义
Image repository以命名空间为范围的镜像 tag 和 digest 集合,地址格式为 <namespace>/<repository>:<tag>
ImageStream Image API 资源,用于记录某个 repository 的 tag 规范和 tag 历史。
Image按 digest 作用域划分的集群级镜像元数据。
ImagePruner用于配置定期裁剪作业的单例自定义资源。
Managed pull secret由 Operator 生成并注入的 service account pull 凭证。
Registry storage用于存储镜像 blob 和 manifest 的后端。

自动镜像裁剪

Registry v2 使用 imagepruners.imageregistry.operator.alauda.io/cluster 来配置定期裁剪。Operator 会渲染一个 image-pruner CronJob,并使用配置的保留策略运行 ac adm prune images

裁剪会首先删除未使用的镜像元数据。Registry garbage collection 会在元数据被删除后回收存储空间。

兼容性说明

  • 对于仍在使用旧版 Registry 的环境,旧版 Registry 的操作指南页面仍然有效。
  • Registry v2 Image API 资源使用 API group image.alauda.io/v1imageregistry.operator.alauda.io/v1
  • Registry v2 使用 Image API 资源,例如 ImageImageStreamImageStreamTagImagePruner
  • 使用 ac 执行 Registry 工作流。