[Harbor]Harbor简要介绍

前一段时间写过一篇文章:[Kubernetes]CentOS7下搭建Harbor仓库,只是知道了如何搭建,但是对于背后的整体架构还不是太清楚,这篇文章就来讲讲.
默认情况下,Harbor运行起来后有如下容器:

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS                 PORTS                                                              NAMES
c2ac87673c5b        vmware/nginx-photon:1.11.13        "nginx -g 'daemon of…"   2 hours ago         Up 2 hours             0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
0d0a8e9cf7f4        vmware/harbor-jobservice:v1.3.0    "/harbor/start.sh"       2 hours ago         Up 2 hours (healthy)                                                                      harbor-jobservice
bb3b83138017        vmware/harbor-ui:v1.3.0            "/harbor/start.sh"       2 hours ago         Up 2 hours (healthy)                                                                      harbor-ui
16f8eec3d78e        vmware/harbor-adminserver:v1.3.0   "/harbor/start.sh"       2 hours ago         Up 2 hours (healthy)                                                                      harbor-adminserver
5063ea0d99d6        vmware/registry:2.6.2-photon       "/entrypoint.sh serv…"   2 hours ago         Up 2 hours (healthy)   5000/tcp                                                           registry
56f5a1077f3a        vmware/harbor-db:v1.3.0            "/usr/local/bin/dock…"   2 hours ago         Up 2 hours (healthy)   3306/tcp                                                           harbor-db
23bf25652305        vmware/harbor-log:v1.3.0           "/bin/sh -c /usr/loc…"   2 hours ago         Up 2 hours (healthy)   127.0.0.1:1514->10514/tcp                                          harbor-log

分别为nginx,harbor-jobservice,harbor-ui,harbor-adminserver,registry,harbor-db,harbor-log,由上我们可以得出下面的架构图:
在这里插入图片描述

各模块详解
Harbor是通过docker compose来部署的,这也是为什么在装Harbor之前,需要安装docker-compose.接下来讲一下上图中设计到的各个模块的详细部分.
  • Proxy:对应启动组件nginx,是一个nginx反向代理.Harbor的registry,UI,token services等组件,都处在一个反向代理后边,该代理负责将来自浏览器,docker clients的请求转发到后端服务上
  • Registry:对应启动组件registry.负责存储Docker镜像文件,以及处理Docker的push,pull等请求.Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull,push请求转发到token服务来获取有效的token.
  • Core services:Harbor的核心功能,主要包括3个服务:UI,Job services和Log collector.
    • UI:对应启动组件harbor-ui.以图像用户界面的方式,辅助用户管理镜像,我个人觉得这样使得使用Harbor时,更加友好.
    • Job services:对应启动组件harbor-jobservice,主要用于镜像复制,和registry通信,本地镜像可以push到Harbor镜像仓库中,同样也可以从Harbor镜像仓库中pull到本地,同时记录job_log.
    • Log collector:对应启动组件harbor-log.负责收集其他模块的日志到一个地方
  • Database:对应启动组件harbor-db.负责存储project,user,role,replication等的metadata数据.
  • adminserver:对应启动组件harbor-adminserver.是系统的配置管理中心,当ui和jobserver启动时,需要加载adminserver的配置
  • 大概就介绍到这里了,感谢您的阅读~

    posted @ 2019-01-01 17:27  Developer_lulu  阅读(2278)  评论(0编辑  收藏  举报