Registry v2:管理访问和清理
本页用于执行管理员和命名空间管理员任务,包括命名空间镜像访问、使用情况报告、镜像清理、Registry 垃圾回收以及镜像签名验证。
任务索引
前提条件
- 已安装并可用 Registry v2。
- 你已拥有到目标集群的
kubectl和ac访问权限。 - 你有权限在镜像命名空间中创建 RoleBinding。
- 你拥有使用情况报告、镜像清理、Registry 垃圾回收和签名验证所需的管理员权限。
授予命名空间权限
向用户授予 pull 权限:
向用户授予 push 权限:
向另一个命名空间中的 service account 授予 pull 权限:
验证 RoleBinding 和有效访问权限:
预期结果:
- RoleBinding 存在于镜像命名空间中。
kubectl auth can-i命令对应该拉取镜像的 service account 返回yes。
Registry v2 使用 ImageStream 层授权:
查看使用情况
显示 Images 的存储和使用统计信息:
显示 ImageStreams 的存储和使用统计信息:
预期结果:
- 命令会输出当前管理员可见的 Image 或 ImageStream 资源的使用情况行。
验证镜像签名
验证记录在 Image 对象上的镜像签名标识:
将受信任条件保存回 Image 对象:
验证已保存的条件:
预期结果:
- Image 对象包含由验证命令保存的受信任签名条件。
保存信任条件会更改 Image API 元数据。要回滚已保存的条件,请编辑 Image 对象并移除已保存的条件,或者从已知良好的备份中恢复该 Image 对象。
清理镜像
确认执行的清理可以永久移除未使用的镜像元数据。如果你还运行 Registry 垃圾回收,则可以从存储中永久回收未被引用的 blob。请在维护窗口期间运行这些命令,保留所需备份,并在添加 --confirm 之前查看 dry-run 输出。
预览镜像清理:
预期结果:
- dry run 会列出可清理候选项,并且不会删除镜像元数据。
在查看 dry-run 输出后执行清理:
验证清理结果:
预期结果:
- 后续的 dry run 将不再列出由已确认命令清理掉的元数据。
通过使用 --whitelist 来排除匹配 allow-list 模式的仓库:
有关计划性清理,请参阅 设置并配置 registry。
已确认的清理不可自动回滚。若需要恢复,请从备份中还原已清理的元数据、从受信任的镜像源重新创建元数据,或重新导入镜像。
运行 Registry 垃圾回收
Registry 垃圾回收会回收 Registry 存储中未被引用的 blob。blob 回收在确认后无法从 Registry 中撤销。
在完成元数据清理后运行 Registry 垃圾回收:
预期结果:
- 不使用
--confirm时,命令会预览垃圾回收候选项。 - 使用
--confirm时,命令会从存储中移除符合条件的未引用 blob。
你也可以将 Registry 垃圾回收作为清理过程的一部分触发:
ac adm prune images 和 ac adm registry gc 默认都是 dry-run。请在添加 --confirm 之前查看预览结果。
在确认执行垃圾回收后,通过拉取或检查来验证关键镜像:
如果回收了必需的 blob,请从后端存储备份中恢复,或再次从受信任的来源复制该镜像。