Alauda Container Platform Registry 概述

Alauda Container Platform Registry 是 ACP 4.4 集群的集成镜像 Registry。它提供 内部镜像存储、ImageStream 元数据、基于命名空间的访问控制、托管服务账户拉取凭证以及镜像清理功能。

集成镜像 Registry

Registry 作为集群工作负载运行于 image-registry-system 中,并由 Image Registry Operator 管理。image-registry Deployment 负责 OCI 推送和拉取流量,而镜像 元数据则通过聚合的 image.alauda.io/v1 Image API 提供。

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

数据类型存储位置
镜像 blob 和 manifestConfig/cluster.spec.storage 中配置的存储后端:emptyDir、PVC、S3、Swift、GCS、IBMCOS 或 Azure。
镜像元数据 Image API 资源,例如 Image、ImageStream、ImageStreamTag、ImageStreamImage 和 ImageSignature。

Registry 与 身份验证和 Kubernetes 授权集成。 命名空间 RoleBinding 控制哪些用户可以拉取、推送、删除或列出镜像内容。镜像清理和 Registry 垃圾回收由管理员和 Operator 管理。

Repository Names

镜像仓库按命名空间限定,并采用以下格式:

<registry-host>/<namespace>/<repository>:<tag>

仓库名称在命名空间之后不得包含其他路径段。例如, registry.example.com/team-a/my-app:v1 有效,但 registry.example.com/team-a/backend/my-app:v1 不受支持。

此限制由 Image API 强制执行,而不是由 Registry 强制执行。OCI Registry 接受推送到 team-a/backend/my-app 的请求并存储 manifest,但 Image API 无法表示该仓库,因为 ImageStream 名称必须是 DNS-1123 子域名。此类镜像没有 ImageStream、Image 或 ImageStreamTag 元数据,因此在 Registry 工作流中不可见。命名空间之后始终只能使用一个仓库段。

Common Terms

术语含义
镜像仓库按命名空间限定的镜像标签和摘要集合,地址格式为 <namespace>/<repository>:<tag>。
ImageStream Image API 资源,用于记录仓库的标签规范和标签历史。
镜像针对某个摘要的集群级镜像元数据。
ImagePruner用于配置定期清理作业的单例自定义资源。
托管拉取密钥由 Operator 生成并注入的服务账户拉取凭证。
Registry 存储存储镜像 blob 和 manifest 的后端。

自动镜像清理

Registry 使用 imagepruners.imageregistry.operator.alauda.io/cluster 配置定期 清理。Operator 会生成一个 image-pruner CronJob,使用配置的保留策略运行 ac adm prune images。

清理操作首先删除未使用的镜像元数据。删除元数据后,Registry 垃圾回收会回收存储空间。

操作说明

  • Registry 资源使用 API 组 image.alauda.io/v1 和 imageregistry.operator.alauda.io/v1。
  • Registry 使用 Image、ImageStream、ImageStreamTag 和 ImageSignature 等 Image API 资源,以及 Operator 资源 ImagePruner。
  • 对于 Registry 工作流,请使用 ac。