1. Harbor介绍
-
Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。
-
作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
2. Harbor和Registry的比较
- Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
- 提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。 - 提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。 - 支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。 - 良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。 - Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制
3. Harbor的简单安装部署
- 安装 python-pip和docker-compose
可以通过wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
配置阿里云的yum源
yum install -y python-pip
pip install docker-compose
速度慢的话可以用国内的镜像源
pip install docker-compose -i https://pypi.douban.com/simple
- 安装docker-compose过程中报错三次
- 通过
pip install --upgrade pip
sudo pip install --ignore-installed requests
和sudo pip install --ignore-installed subprocess32
解决
- 下载harbor安装包
- 地址:
- https://github.com/goharbor/harbor/releases
- https://github.com/goharbor/harbor/releases/download/v2.0.1/harbor-offline-installer-v2.0.1.tgz
我下载的是2.0.1版本
- 解压harbor安装包
tar xf harbor-offline-installer-v2.0.1.tgz
mkdir -p /opt/harbor
创建目录存放harbor数据
cp harbor.yml.tmpl harbor.yml
改配置文件
systemctl start docker
开启docker- ./install.sh执行安装脚本
- 出现错误,原因是没有设定https
- 访问harbor web 界面
- http://192.168.43.17 admin Harbor12345
- 使用
-
登录 docker login 192.168.43.17
-
报错解决:修改Docker的配置文件/etc/docker/daemon.json :
-
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.43.17"]
}
systemct daemon-reload
重启systemctl reload docker
-
新建项目
-
给构建好的镜像打标签并上传到harbor
- 已经出现
- 下载镜像
docker pull 192.168.43.17/myr/goharbor/nginx-photon
- Habor的停止与开启
cd soft/harbor //切换到harbor安装包目录
docker-compose stop //停止Harbor
docker-compose start //启动Harbor
-
关于Harbor的架构解释可以参考下面文章
-
https://ivanzz1001.github.io/records/post/docker/2018/04/20/docker-harbor-architecture