企业级镜像仓库之Harbor部署手册
1、harbor概述
- VMware开源的企业级Registry项目Harbor,以Docker公司开源的registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文,主要特点:
- 基于角色的访问控制 - 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
- 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
- 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。
- AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。
- 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
- 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
- RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。
- 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方式)虚拟设备
2、harbor架构介绍
1 | Name Command State Ports |
- Harbor的每一个组件都被包装成一个docker容器。自然,Harbor是通过docker compose来部署的。在Harbor源代码的make目录下的docker-compose模板会被用于部署Harbor。打开该模板文件,可以看到Harbor由7个容器组件所组成:
- proxy - 通过nginx服务器来做反向代理
- registry - docker官方发布的一个仓库镜像组件
- ui - 整个架构的核心服务。该容器是Harbor工程的主要部分
- adminserver - 作为Harbor工程的配置数据管理器使用
- mysql - 通过官方Mysql镜像创建的数据库容器
- job services - 通过状态机的形式将镜像复制到远程Harbor实例。镜像删除同样也可以被同步到远程Harbor实例中。
- log - 运行rsyslogd的容器,主要用于收集其他容器的日志
- 这些容器之间都通过Docker内的DNS服务发现来连接通信。通过这种方式,每一个容器都可以通过相应的容器来进行访问。对于终端用户来说,只有反向代理(Nginx)服务的端口需要对外暴露。
3、harbor套件部署
3.1、安装docker-compose(Harbor是通过docker compose来部署的)
1 | #下载docker-compose |
3.2、下载离线安装包
1 | #下载地址:https://github.com/goharbor/harbor/releases |
3.3、修改harbor安装的配置文件
1 | #harbor主配置文件 |
4、安装并启动Harbor
4.1、安装之前需要启动docker,然后执行安装脚本
1 | ./install.sh |
4.2、安装完成后查看下正在运行的docker容器
1 | docker ps | grep harbor |
5、访问harbor WEB界面
- 访问地址http://10.255.4.33/
- 用项目管理镜像
6、Harbor的使用(上传下载镜像)
6.1、web页面新建szzt_production项目
- 目前已制作或上传自有镜像共计15个
6.2、将本地容器commit后,然后push到私有仓库
1 | docker login 192.168.6.10 |
6.3、修改各个docker节点或k8s node节点的仓库源
1 | cat /etc/docker/daemon.json |
6.4、拉取私有仓库镜像
1 | docker pull 192.168.6.10/szzt_production/nacos-server:1.3.2 |
7、harbor的管理与启停
1 | #切换到安装目录 |