66ProductsVersion :
77 - ' 4.1,4.2'
88id : KB260200006
9- sourceSHA : 3eb5e699721b27d0f26bc8d29ed3f5c6dc8fdbed6d09c6a05e727284bd76de1e
9+ sourceSHA : 1e76a42f4ecc7622e7af2eb000ce650690ff7b19ebf16b411b22c21101507829
1010---
1111
1212# 如何清理平台内置的镜像注册表
1313
1414## 问题
1515
16- 在使用平台内置的镜像注册表进行安装时,注册表中的镜像数量会随着每次平台升级而增加 。升级后,旧版本的镜像不再需要,但仍然占用存储空间,导致存储资源的浪费。
16+ 在使用平台内置的镜像注册表进行安装时,注册表中的镜像数量随着每次平台升级而增加 。升级后,旧版本的镜像不再需要,但仍然占用存储空间,导致存储资源的浪费。
1717
1818## 环境
1919
@@ -25,19 +25,19 @@ sourceSHA: 3eb5e699721b27d0f26bc8d29ed3f5c6dc8fdbed6d09c6a05e727284bd76de1e
2525
2626当前平台不支持区分旧版和新版镜像,MinIO 的垃圾回收 (GC) 逻辑存在一定的限制。这使得无法选择性地清理未使用的镜像。因此,推荐的方法是完全删除 MinIO 中的所有镜像,然后重新上传所需的镜像。
2727
28- ### 先决条件
28+ ### 前提条件
2929
3030在执行清理操作之前,您必须:
3131
3232- ** 记录集群插件和 Operator** :记录当前安装在平台上的所有集群插件和 Operators
33- - ** 备份自定义镜像** :如果您在注册表中存储了非平台镜像,请备份它们或单独记录以便在清理后重新上传
33+ - ** 备份自定义镜像** :如果您在注册表中存储了非平台镜像,请备份或单独记录,以便在清理后重新上传
3434- ** 安排维护窗口** :此操作将暂时影响平台镜像的可用性,因此请在维护窗口期间进行计划
3535
3636### 概述
3737
3838清理过程主要包括三个部分:
3939
40- 1 . ** 清理镜像注册表** :备份 MinIO 数据,记录已安装的插件/Operators,并清空注册表存储
40+ 1 . ** 清理镜像注册表** :备份 MinIO 数据,记录已安装的插件/Operators,并清除注册表存储
41412 . ** 恢复 ACP 核心镜像** :重新上传 ACP 核心镜像并验证功能
42423 . ** 恢复集群插件和 Operator 镜像** :准备包,重新上传并验证
4343
@@ -67,11 +67,11 @@ du -sh /cpaas/minio
6767
6868- 在所有三个控制平面节点上执行此备份
6969- 验证备份文件大小以确保数据完整性
70- - 将备份文件存储在安全的位置
70+ - 将备份文件存储在安全位置
7171
7272### 获取已安装的 Operators
7373
74- 在清理注册表之前,记录所有已安装的 Operators。在全球集群上执行以下命令以列出跨集群安装的所有 Operators:
74+ 在清理注册表之前,记录所有已安装的 Operators。在全球集群中执行以下命令以列出跨集群安装的所有 Operators:
7575
7676``` bash
7777kubectl get operatorviews -A -o custom-columns=' CLUSTER:.metadata.namespace,NAME:.metadata.name,PHASE:.status.operatorStatus.phase,ARTIFACT:.status.operatorStatus.installation.artifactName,INSTALLED_CSV:.status.operatorStatus.installation.subscription.installedCSV,DISPLAY_NAME:.status.packageManifestStatus.channels[0].currentCSVDesc.displayName' | awk ' NR==1 || ($3 == "Installed")'
@@ -97,7 +97,7 @@ global rds-operator Installed rds-operator
9797
9898### 获取已安装的集群插件
9999
100- 在全球集群上执行以下命令以列出跨集群安装的所有对齐 /无关集群插件:
100+ 在全球集群中执行以下命令以列出跨集群安装的所有对齐 /无关集群插件:
101101
102102``` bash
103103kubectl get modulepluginview -o go-template=' {{-
@@ -145,24 +145,23 @@ capi-provider-gcp agnostic global:v4.0.8
145145
146146- ** MODULE** :集群插件名称
147147- ** LIFECYCLE** :集群插件类型(核心、对齐或无关)
148- - ** INSTALLED(CLUSTER: VERSION )** :以 ` <cluster>:<version> ` 或 ` <cluster>:<version>, <cluster>: <version> ` 格式列出插件在各集群中的安装状态
148+ - ** INSTALLED(CLUSTER: VERSION )** :以 ` <cluster>:<version> ` 或 ` <cluster>:<version>, <cluster>: <version> ` 格式列出插件在集群中的安装状态
149149- ** DISPLAY_NAME** :显示名称
150150
151151** 重要** :此记录必须在清理注册表之前完成,以避免由于缺少镜像而导致的插件状态问题。
152152
153153### 清除注册表数据
154154
155- 进入全球集群的任意控制平面节点,并在注册表 MinIO 容器内执行清理命令:
155+ 进入全球集群的任意控制平面节点,并在 MinIO 容器内执行清理命令:
156156
157157``` bash
158- # 访问注册表 MinIO 容器(方法可能因部署而异)
159- # 示例使用 kubectl:
160- kubectl exec -it -n < registry-namespace> < registry-minio-pod> -- bash
161-
162- # 执行清理命令以清空注册表桶
163- source /etc/config/minio.env && \
164- mc --insecure alias set minio https://127.0.0.1:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY && \
165- mc --insecure rm --recursive --force minio/registry/
158+ # 访问 kube-system 命名空间中的 MinIO 容器
159+ # 执行清理命令以清除注册表存储桶
160+ kubectl exec -it -n kube-system < minio-pod> -- sh -c '
161+ source /etc/config/minio.env && \
162+ mc --insecure alias set minio https://127.0.0.1:9000 $MINIO_ACCESS_KEY $MINIO_SECRET_KEY && \
163+ mc --insecure rm --recursive --force minio/registry/
164+ '
166165```
167166
168167** 警告** :此操作将** 永久删除** 注册表中的所有镜像。确保您已完成备份步骤。
@@ -196,7 +195,7 @@ bash "res/upload.sh" "necessary" "${REGISTRY}" "${USERNAME}" "${PASSWORD}"
196195
197196- 用您的实际注册表地址和凭据替换占位符值
198197- 确保注册表服务正在运行并可访问
199- - 监控上传过程以查找任何错误
198+ - 监控上传过程以查看是否有错误
200199
201200### 测试核心镜像拉取
202201
250249** 重要** :
251250
252251- 此步骤仅使用 ` violet push ` 将插件包上传到平台
253- - 上传完成后,必须单独安装插件
252+ - 插件必须在上传完成后单独安装
254253- 验证每个插件是否成功上传
255254
256255### 测试插件和 Operator 镜像拉取
0 commit comments