Harbo如何使用

发布时间:2021-12-14 11:30:48 作者:iii
来源:亿速云 阅读:161

这篇文章主要讲解了“Harbo如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Harbo如何使用”吧!

基本架构

Harbor安装和配置指导

Harbor 可以使用以下三种方式进行安装部署:

官方下载页面 请点击我 .

需要安装Harbor's virtual appliance,请点击我.

本篇指导主要讲解通过使用在线和离线方式去一步步安装和配置Harbor.安装的步骤基本上都是相同的。

如果用户运行了老版本的harbor,可能需要迁移数据到新的数据库队列中,详细的步骤请**点击我**

另外在kubernetes上面部署的步骤和看以下链接**harbor on kubernets **

Harbor依赖

Harbor 被作为一个docker容器部署在服务区上,因此,他能够被部署在任何linux发行版本。目标主机上需要安装python,docker,以及docker-compose工具。

Harbor安装与配置

安装步骤为以下几个部分:

  1. 下载安装包

  2. 修改相关配置 harbor.cfg;

  3. 运行 install.sh 去安装和启动harbor;

1.下载安装包

点击链接下载二进制包 Harbor下载 . 选择一个在线或者离线包进行下载. 使用 tar 命令解压下载的源码包

在线包安装:

    $ tar xvf harbor-online-installer-<version>.tgz

离线包安装:

    $ tar xvf harbor-offline-installer-<version>.tgz

2.配置 Harbor

配置参数被放在文件 harbor.cfg 中. 详细参数讲解 至少得配置 hostname 参数

3. 配置后端存储 (可选的)

默认,Harbor会存储镜像文件到本地文件系统。在生产环境中应该考虑使用一些后端存储去代替本地文件系统,比如S3,openstack swift或者ceph等。可以在文件templates/registry/config.yml去选择更新存储方式。比如你想使用Openstack Swift作为你的存储后端,对应的配置会如下:

storage:
  swift:
    username: admin
    password: ADMIN_PASS
    authurl: http://keystone_addr:35357/v3/auth
    tenant: admin
    domain: default
    region: regionOne
    container: docker_images

注意: 关于docker registry在存储后端的详细信息可以查看相应链接 Registry 配置详情 .

4.完成Harbor的安装并进行启动Harbor

一旦 harbord.cfg 和存储后端被配置完成就可以使用install.sh脚本进行安装和启动Harbor服务。 需要注意的是,执行该操作可能会花费一些,因为需要从docker hub上去下载一些Harbor相关依赖的images文件。

    $ sudo ./install.sh

如果上面脚本执行完成之后,一切工作正常,你就可以在浏览器上输入配置文件harbor.cfg中配置的hostname并且使用配置的admin用户来访问Harbor服务。 http://reg.yourdomain.com 默认的管理员用户名密码: username/password:admin/Harbor12345 .

使用admin用户登录进去后首先创建一个项目,比如myproject. 接下来用户就可以使用docker login reg.yourdomain.com 登录并进行push镜像。(默认的registry服务监听的80端口):

sh
$ docker login reg.yourdomain.com
$ docker push reg.yourdomain.com/myproject/myrepo:mytag

重要提示: 默认安装的Harbor使用的是 HTTP 协议,因此,当用户在使用的时候,需要在docker daemon的配置文件中增加以下参数 --insecure-registry reg.yourdomain.com 并且重启docker.

更多使用Harbor的详情信息,请点我**Harbor使用指南** .

5.配置Harbor以支持HTTPs访问

Harbor不会使用任何认证进行运行,默认使用http来提供服务。这种方式对于部署或者测试环境会相应的简单一些,但是在生产环境中不建议那样做。为了启用HTTPS的支持,请看下面的链接 配置Harbor以支持https.

管理 Harbor的生命周期

你可以使用docker-compose去管理Harbor的整个生命周期。以下是相应的管理命令,需要注意的是docker-compose必须得在有docker-compose.yml文件的目录下执行:

停止Harbor服务:

$ sudo docker-compose stop
Stopping harbor_proxy_1 ... done
Stopping harbor_ui_1 ... done
Stopping harbor_registry_1 ... done
Stopping harbor_mysql_1 ... done
Stopping harbor_log_1 ... done
Stopping harbor_jobservice_1 ... done

启动Harbor服务:

$ sudo docker-compose start
Starting harbor_log_1
Starting harbor_mysql_1
Starting harbor_registry_1
Starting harbor_ui_1
Starting harbor_proxy_1
Starting harbor_jobservice_1

如果需要修改Harbor的配置,首先需要停掉正在运行的 Harbor实例,更新harbor.cfg文件,再次运行install.sh

$ sudo docker-compose down

$ vim harbor.cfg

$ sudo install.sh

删除Harbor容器,保存镜像文件和Harbor的数据库文件:

$ sudo docker-compose rm
Going to remove harbor_proxy_1, harbor_ui_1, harbor_registry_1, harbor_mysql_1, harbor_log_1, harbor_jobservice_1
Are you sure? [yN] y
Removing harbor_proxy_1 ... done
Removing harbor_ui_1 ... done
Removing harbor_registry_1 ... done
Removing harbor_mysql_1 ... done
Removing harbor_log_1 ... done
Removing harbor_jobservice_1 ... done

删除Harbor的数据库信息和镜像文件(一般为了纯净安装):

$ rm -r /data/database
$ rm -r /data/registry

更多docker-compose命令使用指南

持久化数据和日志文件

默认情况下,regirstry的数据被持久化到目标主机的/data/目录。当Harbor的容器呗删除或者重新创建的时候,数据不会有任何改变。 另外,Harbor使用rsyslog去收集每个容器的日志,默认的,政协日志文件被存储在目标主机的/var/log/harbor/目录以便进行troubleshooting

配置Harbor监听自定义端口

默认情况下,Harbor监听80和443(需要配置)来作为admin用户登录的入口,当然也可以自定义该端口。

Http协议

1.修改 docker-compose.yml 文件 替换ui中的端口映射, e.g. 8888:80.

proxy:
    image: library/nginx:1.11.5
    restart: always
    volumes:
      - ./config/nginx:/etc/nginx
    ports:
      - 8888:80
      - 443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

2.修改模版文件 templates/registry/config.yml
, 在参数 "$ui_url"之后增加自定义端口":8888".

auth:
  token:
    issuer: registry-token-issuer
    realm: $ui_url:8888/service/token
    rootcertbundle: /etc/registry/root.crt
    service: token-service

3.运行install.sh更新并启动harbor.

$ sudo docker-compose down
$ sudo install.sh

HTTPS 协议

1.启用Https协议指南 guide.
2.修改 docker-compose.yml配置文件

修改compose文件中的443端口映射,比如: 4443:443.

proxy:
    image: library/nginx:1.11.5
    restart: always
    volumes:
      - ./config/nginx:/etc/nginx
    ports:
      - 80:80
      - 4443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

3.修改模版文件 templates/registry/config.yml
在"$ui_url"之后增加自定义端口,比如":4443"

auth:
  token:
    issuer: registry-token-issuer
    realm: $ui_url:4443/service/token
    rootcertbundle: /etc/registry/root.crt
    service: token-service

4.运行 install.sh 更新启动 Harbor.

$ sudo docker-compose down
$ sudo install.sh

故障排查

  1. 当harbor不正常工作的时候,可以使用一下命令查看正在运行的容器信息:

    $ sudo docker-compose ps
       Name                      Command               State                  Ports                   
  -----------------------------------------------------------------------------------------------------
  harbor_jobservice_1   /harbor/harbor_jobservice        Up                                               
  harbor_log_1          /bin/sh -c crond && rsyslo ...   Up    0.0.0.0:1514->514/tcp                    
  harbor_mysql_1        /entrypoint.sh mysqld            Up    3306/tcp                                 
  harbor_proxy_1        nginx -g daemon off;             Up    0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp 
  harbor_registry_1     /entrypoint.sh serve /etc/ ...   Up    5000/tcp                                 
  harbor_ui_1           /harbor/harbor_ui                Up

如果有容器处于非up状态,可以检查容器日志/var/log/harbor

2.对harbor进行弹性负载均衡nginx反响代理的时候可以查看以下文件,
make/config/nginx/nginx.conf 中的相关配置 location /, location /v2/ location /service/.

proxy_set_header X-Forwarded-Proto $scheme;

感谢各位的阅读,以上就是“Harbo如何使用”的内容了,经过本文的学习后,相信大家对Harbo如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. laravel 使用 phpword使用说明
  2. SpringBoot使用NoSQL——Redis的使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

harbor

上一篇:Docker中image container基本操作有哪些

下一篇:原生js和js的区别是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》