首页 Docker教程docker-分布式镜像仓库Harbor

docker-Docker Registry私有仓库

docker-容器编排管理工具docker compse基础

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

Docker仓库之分布式 Harbor

Harbor 介绍和架构
Harbor 介绍

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控,另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等

vmware官方开源服务:https://vmware.github.io/

harbor 官方github 地址:https://github.com/vmware/harbor

harbor 官方网址:https://goharbor.io/

harbor官方文档:https://goharbor.io/docs/

Harbor功能官方介绍

-基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限

-镜像复制:镜像可在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景

-图形化用户界面:用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间

-AD/LDAP 支:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理

-审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理

-国际化:已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来

-RESTful API:提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易

-部署简单:提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备

Harbor 组成

docker-分布式镜像仓库Harbor插图

  • Proxy:对应启动组件nginx。它是一个nginx反向代理,代理Notary client(镜像认证)、Docker client(镜像上传下载等)和浏览器的访问请求(Core Service)给后端的各服务
  • UI(Core Service):对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:
    • UI:一个web管理页面ui
    • API:Harbor暴露的API服务
    • Auth:用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现
    • Token服务(上图中未体现):负责根据用户在每个project中的role来为每一个docker push/pull命令issuing一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token
  • Registry:对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token
  • Admin Service:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置
  • Job Sevice:对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log
  • Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起
  • DB:对应启动组件harbor-db,负责存储project、 user、 role、replication、image_scan、access等的metadata数据
安装Harbor

下载地址:https://github.com/vmware/harbor/releases

安装文档:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

环境准备:共四台主机

  • 两台主机当harbor,地址:10.0.0.101|102
  • 另两台主机上传和下载镜像
安装docker

下载Harbor安装包并解压缩

以下使用 harbor 稳定版本1.7.6安装包

方法1:下载离线完整安装包,推荐使用

方法2:下载在线安装包 ,不是很推荐

解压缩

编辑配置文件 harbor.cfg

先安装docker compose

安装docker compose

运行安装脚本安装harbor

登录harbor主机网站

用浏览器访问:http://10.0.0.101/

用户名:admin

密码:即前面harbor.cfg中指定的密码

docker-分布式镜像仓库Harbor插图(1)

docker-分布式镜像仓库Harbor插图(2)

实战案例:一键安装Harbor脚本

使用harbor
建立项目

harbor上必须先建立项目,才能上传镜像

docker-分布式镜像仓库Harbor插图(3)

docker-分布式镜像仓库Harbor插图(4)

docker-分布式镜像仓库Harbor插图(5)

命令行登录harbor

给本地镜像打标签并上传到harbor

修改 images 的名称,不修改成指定格式无法将镜像上传到 harbor 仓库

格式为:

范例:

访问harbor网站验证上传镜像成功
docker-分布式镜像仓库Harbor插图(6)

范例:不事先建立项目,上传镜像失败

docker-分布式镜像仓库Harbor插图(7)

可以看到操作的日志记录

docker-分布式镜像仓库Harbor插图(8)下载harbor的镜像

在10.0.0.103的CentOS 7 的主机上无需登录,即可下载镜像

下载前必须修改docker的service 文件,加入harbor服务器的地址才可以下载

范例:修改docker的service文件

范例:从harbor下载镜像

5.4.3.5 创建自动打标签上传镜像脚本

登录harbor网站验证脚本上传镜像成功

docker-分布式镜像仓库Harbor插图(9)

修改harbor配置

后期如果修改harbor配置,比如:修改IP地址等,可执行以下步骤生效

方法1:

方法2:

实现harbor高可用

docker-分布式镜像仓库Harbor插图(10)

Harbor支持基于策略的Docker镜像复制功能,这类似于MySQL的主从同步,其可以实现不同的数据中心、不同的运行环境之间同步镜像,并提供友好的管理界面,大大简化了实际运维中的镜像管理工作,已经有用很多互联网公司使用harbor搭建内网docker仓库的案例,并且还有实现了双向复制功能

安装第二台harbor主机

参考5.4.2的过程,在第二台主机上安装部署好harbor,并登录系统

docker-分布式镜像仓库Harbor插图(11)

第二台harbor上新建项目

参考第一台harbor服务器的项目名称,在第二台harbor服务器上新建与之同名的项目

docker-分布式镜像仓库Harbor插图(12)

第二台harbor上仓库管理中新建目标

参考第一台主机新建复制(同步)目标信息

docker-分布式镜像仓库Harbor插图(13)

输入第一台harbor服务器上的用户信息

docker-分布式镜像仓库Harbor插图(14)

docker-分布式镜像仓库Harbor插图(15)

第二台harbor上新建复制规则

docker-分布式镜像仓库Harbor插图(16)
docker-分布式镜像仓库Harbor插图(17)

在第一台harbor主机上重复上面操作

以上操作,只是实现了从10.0.0.1到10.0.102的单向同步,再执行下面操作,才实现双向同步

docker-分布式镜像仓库Harbor插图(18)

docker-分布式镜像仓库Harbor插图(19)

确认同步成功

在第二台harbor主机上可以查看到从第一台主机同步过来的镜像

docker-分布式镜像仓库Harbor插图(20)

也可以查看到同步日志

docker-分布式镜像仓库Harbor插图(21)

上传镜像观察是否可以双高同步

docker-分布式镜像仓库Harbor插图(22)
docker-分布式镜像仓库Harbor插图(23)

删除镜像观察是否可自动同步

docker-分布式镜像仓库Harbor插图(24)

docker-分布式镜像仓库Harbor插图(25)

docker-分布式镜像仓库Harbor插图(26)

docker-分布式镜像仓库Harbor插图(27)

harbor 安全 https配置

harbor默认使用http,为了安全,可以使用https

实现Harbor的https认证

用https方式访问harbor网站

修改/etc/hosts文件

打开浏览器,访问http://harbor.magedu.org ,可以看到以下界面

docker-分布式镜像仓库Harbor插图(28)

docker-分布式镜像仓库Harbor插图(29)

docker-分布式镜像仓库Harbor插图(30)

docker-分布式镜像仓库Harbor插图(31)

查看证书

docker-分布式镜像仓库Harbor插图(32)

上传镜像

先在harbor网站新建项目

docker-分布式镜像仓库Harbor插图(33)

直接上传会报错

复制ca的证书

在harbor网站上验证上传的镜像

docker-分布式镜像仓库Harbor插图(34)

下载镜像

本文链接:http://www.yunweipai.com/34933.html

docker-Docker Registry私有仓库

docker-容器编排管理工具docker compse基础

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部