背景:

在访问harbor镜像仓库时提示报错如下:

问题分析:

根据提供的报错内容来看时harbor服务的nginx组件服务异常了的,导致无法访问harbor服务,查看harbor服务结果如下:

service@harbor:~/harbor$ docker-compose ps
       Name                     Command                 State                                   Ports                              
-----------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                           
harbor-core          /harbor/start.sh                 Up                                                                           
harbor-db            /entrypoint.sh postgres          Up           5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                           
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up           127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Restarting                                                                   
nginx                nginx -g daemon off;             Up           0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up           6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up           5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                     

根据docker-compose ps查询的内容来看,是harbor-portal组件服务异常了,导致了nginx组件服务也异常了。

这时候查看harbor服务各个组件的健康状态情况,通过docker ps服务查看

service@harbor:~/harbor$ docker ps -a
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                       PORTS                                                              NAMES
3fc9f7342c5d        goharbor/nginx-photon:v1.7.1             "nginx -g 'daemon ..."   3 months ago        Up 13 hours (unhealthy)      0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
6eee31ef2bfc        goharbor/harbor-jobservice:v1.7.1        "/harbor/start.sh"       3 months ago        Up 13 hours                                                                                     harbor-jobservice
321ef98c530a        goharbor/harbor-portal:v1.7.1            "nginx -g 'daemon ..."   3 months ago        Restarting (1) 6 hours ago                                                                      harbor-portal
fed5f6eaf486        goharbor/harbor-core:v1.7.1              "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           harbor-core
122bbc2f6b56        goharbor/harbor-registryctl:v1.7.1       "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           registryctl
7be0ed1ad358        goharbor/harbor-db:v1.7.1                "/entrypoint.sh po..."   3 months ago        Up 13 hours (healthy)        5432/tcp                                                           harbor-db
2448c27d1db9        goharbor/registry-photon:v2.6.2-v1.7.1   "/entrypoint.sh /e..."   3 months ago        Up 13 hours (healthy)        5000/tcp                                                           registry
d7a2691f9a2c        goharbor/harbor-adminserver:v1.7.1       "/harbor/start.sh"       3 months ago        Up 13 hours (healthy)                                                                           harbor-adminserver
d987bcb50630        goharbor/redis-photon:v1.7.1             "docker-entrypoint..."   3 months ago        Up 13 hours                  6379/tcp                                                           redis
d7df267a0dc9        goharbor/harbor-log:v1.7.1               "/bin/sh -c /usr/l..."   3 months ago        Up 13 hours (healthy)        127.0.0.1:1514->10514/tcp                                          harbor-log

这里可以发现nginx处于unhealthy,不健康的状态。

这时候需要分析harbor-portal组件服务为什么报错了,因为harbor使用了syslog服务作为存放日志,所以我们只需要到/var/log/harbor目录下找到对应的服务日志文件查看即可。

service@harbor:/var/log/harbor$ tail -1000f portal.log
........
Jun  4 03:58:54 localhost portal[119121]: 2024/06/03 19:58:54 [emerg] 1#0: mkdir() "/etc//nginx/client_body_temp" failed (13: Permission denied)
Jun  4 03:58:54 localhost portal[119121]: nginx: [emerg] mkdir() "/etc//nginx/client_body_temp" failed (13: Permission denied)

根据日志的提示是portal容器在运行的时候需要创建/etc/nginx/client_body_temp目录,但是提示权限不足无法创建。

问题解决方案:

这里的处理方案就是重新创建portal服务即可。

先停止harbor-portal服务

service@harbor:~/harbor$ docker-compose stop portal
Stopping harbor-portal ... done
                                                   

查看是否已经停止掉harbor-portal服务 

service@harbor:~/harbor$ docker-compose ps
       Name                     Command               State                                 Ports                              
-------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                       
harbor-core          /harbor/start.sh                 Up                                                                       
harbor-db            /entrypoint.sh postgres          Up       5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                       
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up       127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Exit 1                                                                   
nginx                nginx -g daemon off;             Up       0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up       6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up       5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                    

重建harbor-portal服务

service@harbor:~/harbor$ docker-compose up portal
Creating harbor-portal ... done
harbor-adminserver is up-to-date
registry is up-to-date
harbor-core is up-to-date
Creating harbor-portal ... 
Attaching to harbor-portal
harbor-portal  | WARNING: no logs are available with the 'syslog' log driver
harbor-portal exited with code 0

验证harbor-portal服务是否恢复,nginx服务是否也是恢复了

service@harbor:~/harbor$ docker-compose ps
       Name                     Command               State                                Ports                              
------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                                      
harbor-core          /harbor/start.sh                 Up                                                                      
harbor-db            /entrypoint.sh postgres          Up      5432/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                      
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp                                       
harbor-portal        nginx -g daemon off;             Up      80/tcp                                                          
nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up      6379/tcp                                                        
registry             /entrypoint.sh /etc/regist ...   Up      5000/tcp                                                        
registryctl          /harbor/start.sh                 Up                 
service@harbor:~/harbor$ docker ps 
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                   PORTS                                                              NAMES
9d729ec76f0c        goharbor/harbor-portal:v1.7.1            "nginx -g 'daemon ..."   2 minutes ago       Up 2 minutes (healthy)   80/tcp                                                             harbor-portal
3fc9f7342c5d        goharbor/nginx-photon:v1.7.1             "nginx -g 'daemon ..."   3 months ago        Up 14 hours (healthy)    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
6eee31ef2bfc        goharbor/harbor-jobservice:v1.7.1        "/harbor/start.sh"       3 months ago        Up 14 hours                                                                                 harbor-jobservice
fed5f6eaf486        goharbor/harbor-core:v1.7.1              "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       harbor-core
122bbc2f6b56        goharbor/harbor-registryctl:v1.7.1       "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       registryctl
7be0ed1ad358        goharbor/harbor-db:v1.7.1                "/entrypoint.sh po..."   3 months ago        Up 14 hours (healthy)    5432/tcp                                                           harbor-db
2448c27d1db9        goharbor/registry-photon:v2.6.2-v1.7.1   "/entrypoint.sh /e..."   3 months ago        Up 14 hours (healthy)    5000/tcp                                                           registry
d7a2691f9a2c        goharbor/harbor-adminserver:v1.7.1       "/harbor/start.sh"       3 months ago        Up 14 hours (healthy)                                                                       harbor-adminserver
d987bcb50630        goharbor/redis-photon:v1.7.1             "docker-entrypoint..."   3 months ago        Up 14 hours              6379/tcp                                                           redis
d7df267a0dc9        goharbor/harbor-log:v1.7.1               "/bin/sh -c /usr/l..."   3 months ago        Up 14 hours (healthy)    127.0.0.1:1514->10514/tcp                                          harbor-log

这时候发现nginx服务也是healthy状态了,然后去浏览器上访问一下:

然后去输入账号密码即可。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部