编辑
2022-03-16
harbor
00

目录

Docker 之分布式仓库 Harbor
一、habor基本功能
二、harbor组成
三、安装。注意:harbor之前必须先安装好docker和docker-compose

Docker 之分布式仓库 Harbor

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。

一、habor基本功能

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

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

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

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

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

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

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

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

二、harbor组成

harbor是由很多容器组合而成的一个具有web界面管理功能的镜像仓库

具体镜像及作业

  • 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命令发布一个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之前必须先安装好docker和docker-compose

docker的安装

  • 安装完docker源后,不指定版本,Ubuntu和centos默认安装的都是最新版,目前k8s支持到19.03
  • Ubuntu查看源里包含的指定软件的版本:apt-cache madison docker-ce
  • Centos查看源里包含的指定软件版本: yum list docker --showduplicates
  • 安装docker-ce和docker-ce-cli时最好加版本号,保持server和cli版本一致。
  • 网络上docker安装教程很多,这里就不赘述了,有兴趣的可以看本站的docker模块的安装脚本,脚本看不懂的可以去阿里云镜像网站安装和配置镜像加速,目前不推荐阿里云加速,国内各大主流厂商已经对个人进行限速,
  • 推荐使用清华大学的镜像加速!!!
  • 地址:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b116C4T2e

docker-compose的安装

#下载地址:https://github.com/docker/compose/releases
#直接下载二进制程序,复制到/usr/bin下,改名为docker-compose,添加执行权限即可使用
#docker-compose在k8s中用不到,但是在小型规模的网站中使用还是很方便的,需要详细了解的可以留言

废话不多说,附安装过程

sh
1. 首先安装好docker和docker-compose 2. 提前下载harbor镜像 3. 解压文件 tar xf harbor-offline-installer-v2.5.2.tgz 4. 修改默认配置文件 cp harbor.yml.tmpl harbor.yml vim harbor.yml hostname: 10.0.0.140 #修改此行,指向当前主机IP 或 FQDN ---------不使用https的情况下先注释掉------------- #https related config #https: #https port for harbor, default is 443 #port: 443 #The path of cert and key files for nginx #certificate: /your/certificate/path #private_key: /your/private/key/path harbor_admin_password: 123456 #修改默认密码 5. 运行安装脚本即可 ./install.sh 6. 登录harbor: 默认账号是admin,密码是刚才设置的123456。单机搭建完成。 7. 默认docker login 10.0.0.140登录时会报错,因为默认走443端口. 修改/etc/docker/daemon.json { "registry-mirrors": ["https://npud8xro.mirror.aliyuncs.com"], "insecure-registries": ["10.0.0.140"] #添加不信任仓库即可 } systemctl daemon-reload systemctl restart docker 8. 重启docker后harbor可能不会重启,删除所有镜像,在harbor的解压目录运行docker-compose up -d 即可。默认会调用harbor.yml文件运行harbor 9. 效果截图,下次附上。

提示

harbor如果只部署一台存在单点问题,一旦出故障,整个公司的所有镜像都会无法拉去和上传。影响使用,下次讲基于nginx代理实现两台harbor双向复制。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:笑一个吧~

本文链接:

版权声明:本文为博主「笑一个吧~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。