Harbor配置同步规则删除不掉

【问题原因】

harbor上主从两个仓库,配置同步规则时,定时任务配置太频繁,导致规则修改,删除都失败。

【问题现象】

点击修改后保存,页面报internal server error的错。

【问题排查】

docker ps | grep harbor

查看docker日志,日志中也没有报错。

从页面删除任务失败,是因为里面有“InProgress”的任务,后面需要手动更改sql,update

1.查找有问题的规则的id

http://ip:port/api/v2.0/replication/policies

在查出的内容中,搜索 有问题的规则名称  ,找到其id 

2.http://ip:port/api/v2.0/replication/executions?policy_id=1

在查出的内容中,搜索  InProgress  找出类型是InProgress的id值。

3.删除有问题的任务

docker exec -it harbor-db bash

psql -U postgres

\c registry

\d replication_execution

实例操作:

# docker exec -it harbor-db bash
postgres [ / ]$ psql -U postgres
psql (9.6.14)
Type "help" for help.

postgres=# \c registry
You are now connected to database "registry" as user "postgres".
registry=# \d replication_execution
                                      Table "public.replication_execution"
   Column    |            Type             |                             Modifiers                              
-------------+-----------------------------+--------------------------------------------------------------------
 id          | integer                     | not null default nextval('replication_execution_id_seq'::regclass)
 policy_id   | integer                     | not null
 status      | character varying(32)       | 
 status_text | text                        | 
 total       | integer                     | not null default 0
 failed      | integer                     | not null default 0
 succeed     | integer                     | not null default 0
 in_progress | integer                     | not null default 0
 stopped     | integer                     | not null default 0
 trigger     | character varying(64)       | 
 start_time  | timestamp without time zone | default now()
 end_time    | timestamp without time zone | 
Indexes:
    "replication_execution_pkey" PRIMARY KEY, btree (id)
    "execution_policy" btree (policy_id)

registry=# 

查询表  replication_execution

# select * from replication_execution;
 id | policy_id | status | status_text | total | failed | succeed | in_progress | stopped | trigger | start_time | end_time 
----+-----------+--------+-------------+-------+--------+---------+-------------+---------+---------+------------+----------

需要注意的是,查询的sql末尾是有;的。因为之前没加; 语句没结束,没有返回,一直以为是表中是空值。

4.update  replication_execution表。

将有问题的任务,status更新为f  , 在语句中,status='f',用引号给括起来。

5.再在harbor的页面上操作,修改和删除任务,都正常。

 

### 如何配置 Harbor 实现镜像自动删除 为了实现 Harbor 中的镜像自动删除功能,主要依赖于 Harbor 的垃圾回收机制以及策略管理。具体操作如下: #### 启用垃圾回收机制 Harbor 提供了内置的垃圾回收(GC)工具来清理未被使用的镜像层和标签。管理员可以通过命令行手动触发 GC 或者设置定时任务定期执行。 对于基于 Docker EE 构建的企业级产品来说,确保所使用的 Harbor 版本兼容当前环境非常重要[^1]。 ```bash docker exec -it harbor_core_1 /home/harbor/prepare docker exec -it harbor_jobservice_1 sh -c "cd /harbor && ./gc.sh" ``` 以上脚本用于准备并启动一次完整的垃圾收集过程。 #### 创建保留策略 除了通过 GC 工具进行物理层面的数据清除外,还可以利用 Harbor 自带的“保留策略”特性,在逻辑上控制哪些旧版本应该被淘汰掉。这允许用户定义特定条件下的过期规则,例如超过一定时间后不再活跃的 tag 将会被标记为可删除状态。 进入 Harbor Web UI -> Administration Settings -> Retention 页面创建新的规则集,并指定作用范围(全局或选定项目)、过滤器参数(如仓库名称模式匹配、tag 前缀等),最后保存生效即可[^2]。 需要注意的是,当涉及到数据库连接失败等问题时,应先排查是否由于缺少必要的数据源 URL 配置引起[^3];不过这类情况通常不会直接影响到镜像生命周期管理工作流的设计与实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值