goharbor / harbor

An open source trusted cloud native registry project that stores, signs, and scans content.
https://goharbor.io
Apache License 2.0
24.11k stars 4.76k forks source link

Multiple Harbors Copying 401 #20673

Open hsy-go opened 4 months ago

hsy-go commented 4 months ago

We have deployed two Harbor clusters based on shared storage

  1. An error occurred when using the copy function from Harbor1 (A, B) to Harbor (C, D) error: Jun 27 17:59:35 172.22.0.1 jobservice[1035]: 2024-06-27T09:59:35Z [ERROR] [/controller/replication/transfer/image/transfer.go:470]: failed to pull the manifest of artifact yeepay-docker-staging-local/jgs-invoice-server:202406271757_4583886c: http status code: 401, body: {"errors":[{"code":"UNAUTHORIZED","message":"unauthorized to access repository: yeepay-docker-staging-local/jgs-invoice-server, action: pull: unauthorized to access repository: yeepay-docker-staging-local/jgs-invoice-server, action: pull"}]} Jun 27 17:59:35 172.22.0.1 jobservice[1035]: 2024-06-27T09:59:35Z [ERROR] [/controller/replication/transfer/image/transfer.go:194]: http status code: 401, body: {"errors":[{"code":"UNAUTHORIZED","message":"unauthorized to access repository: yeepay-docker-staging-local/jgs-invoice-server, action: pull: unauthorized to access repository: yeepay-docker-staging-local/jgs-invoice-server, action: pull"}]} Jun 27 17:59:35 172.22.0.1 jobservice[1035]: 2024-06-27T09:59:35Z [ERROR] [/controller/replication/transfer/image/transfer.go:200]: got error during the whole transfer period, mark the job failure Jun 27 17:59:35 172.22.0.1 jobservice[1035]: 2024-06-27T09:59:35Z [ERROR] [/jobservice/runner/redis.go:123]: Job 'REPLICATION:48ca340393330104ecd48016' exit with error: run error: got error during the whole transfer period, mark the job failure Jun 27 17:59:35 172.22.0.1 jobservice[1035]: 2024-06-27T09:59:35Z [ERROR] [/jobservice/hook/hook_agent.go:155]: Retry: sending hook event error: {"errors":[{"code":"NOT_FOUND","message":"task with job ID a12e5b32f8128ed9aee99c32 not found"}]}
hsy-go commented 4 months ago

共享存储的二台harbor,复制任务去另一套harbor失败率太高,jobservice组件报401

MinerYang commented 4 months ago

Please make sure your account has proper permission to pull image from repository yeepay-docker-staging-local/jgs-invoice-server

stonezdj commented 4 months ago

Please check the harbor core log in the source Harbor, and make sure there is no such log https://github.com/goharbor/harbor/blob/4ecc60dbd748569e2d759d6c449e0e6797104146/src/core/auth/authenticator.go#L158

hert525 commented 2 months ago

Please check the harbor core log in the source Harbor, and make sure there is no such log

https://github.com/goharbor/harbor/blob/4ecc60dbd748569e2d759d6c449e0e6797104146/src/core/auth/authenticator.go#L158

Please check the harbor core log in the source Harbor, and make sure there is no such log

https://github.com/goharbor/harbor/blob/4ecc60dbd748569e2d759d6c449e0e6797104146/src/core/auth/authenticator.go#L158

I have the same issue, and I suspect that the two Harbor nodes cannot share the same token, which might be causing the problem. Currently, I can only stop the jobservice on one of the nodes. Is there any way to avoid this issue?

AnUtiles commented 3 weeks ago

I also encountered the same problem, where the push time when using repository replication would throw the following exception: 2024-10-14T14:33:56Z [ERROR] [/controller/replication/transfer/image/transfer.go:194]: http status code: 401, body: {"errors":[{"code":"UNAUTHORIZED","message":"unauthorized to access repository: test/nginx, action: push: unauthorized to access repository: test/nginx, action: push"}]} Under the same configuration, using pull is normal.