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 授权集成。 命名空间 RoleBindings 控制哪些用户可以拉取、推送、删除或列出镜像内容。镜像清理和 Registry 垃圾回收由管理员和 Operator 管理。

仓库名称

镜像仓库按命名空间划分,并使用以下格式:

<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 工作流中不可见。 命名空间后始终只使用一个仓库段。

常用术语

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

自动镜像清理

Registry 使用 imagepruners.imageregistry.operator.alauda.io/cluster 配置计划清理。 Operator 渲染一个 image-pruner CronJob,该 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。