安装

目录

  • 安装harbor

  • 高可用方案

  • 注意事项

一、安装habror

1.1 安装docker

1.2 安装docker-compose

1.2.1 安装

从TeleDCOS包中获取文件docker-compose-1.9.0,拷贝到主机的/usr/bin目录下,并重命名为 docker-compose,然后添加可执行权限

1.2.2 验证

执行以下命令,查看是否能显示版本信息

$ docker-compose -v
docker-compose version 1.9.0, build 2585387

1.3 安装harbor

1.3.1 下载

从TeleDCOS包中获取harbor安装包,文件名为 harbor-offline-installer-0.5.0.tgz,大概303M

1.3.2 解压

把下载好的压缩包放在主机的 ~ 目录下,然后解压。解压后在当前目录下就会出现一个harbor文件夹。

1.3.3 修改配置

  • 进入到harbor根目录

  • 修改harbor.cfg

找到如下一行

修改为

其中x.x.x.x为harbor所在宿主机的物理IP地址,8021为harbor对外的端口(可以自定义)

  • 修改docker-compose.yml

找到如下一段配置

修改为

找到如下一段配置

修改“- 80:80”这一行,删除“- 443:443”这一行,最终修改为

注意: “- 8021:80” 中的8021要与 harbor.cfg中的 “hostname: x.x.x.x:8021” 中端口保持一致

  • 修改 common/templates/registry/config.yml(可选)

如果想去掉认证(即不用docker login就能直接push与pull镜像),删除如下几行

  • 更改数据目录(可选)

harbor的数据默认存储在/data目录下,如果要更改为其他目录比如/dcos/data/harbor,则把docker-compose.yml文件中的如下四行进行修改

上述四行内容的修改,可以用如下命令达到

修改了docker-compose.yml文件,我们还需要修改prepare脚本文件,更改第63行,把default='/data/'修改为default='/dcos/data/harbor/'

1.3.4 启动

执行如下命令启动harbor

启动过程大约需求一两分钟,过程中且不断会有日志输出,耐心等待harbor启动完成

1.3.5 验证

在harbor目录下执行以下命令,如果六个容器均为Up状态,说明启动成功

1.3.6 访问

在浏览器中输入 x.x.x.x:8021,初始用户名与密码为 admin/Harbor12345

二、高可用方案

目前harbor的高可用是通过project之间的复制策略来保证的。假设我们在10.142.232.161和10.142.232.162上都装好了harbor,接下来,我们来介绍一下如何在两个harbor的project之间创建复制策略

2.1 创建用户

我们先在两个harbor实例上都创建一个相同的用户,假设为user1(注意两个harbor上都要创建用户,用户名相同,密码相同)

创建用户的操作要使用admin用户

2.2 创建target

  • 10.142.232.162

在10.142.232.162的harbor上创建一个target,指向10.142.232.161的harbor。

创建target的操作要使用admin用户

  • 10.142.232.161

与上面的操作类似

2.3 创建project

使用user1用户登录,创建项目 project1user1(两个harbor实例上都要创建)

2.4 创建复制策略

  • 10.142.232.162

使用admin用户登录,为项目project1user1创建复制策略

  • 10.142.232.161

与上面的操作类似

2.5 验证

161的project1user1中的镜像会自动同步到162上,162的project1user1中的镜像也会同步到161,从而实现了harbor间镜像的同步。可以push镜像进行验证

2.6 keepalived

由于两个harbor实例的IP不一样,所以我们还需要在两台主机上安装keepalived,使两台主机绑定一个vip(假设为10.142.232.160),当其中一台主机挂了,vip会漂移到另一台主机上,这样保证了harbor的高可用。

注意: 我们使用的harbor的地址应该为vip,即 10.142.232.160:8021

三、注意事项

  • dcos管理平台会在某个harbor实例上创建好用户与项目,所以我们创建用户与项目时只需要在其中某一个harbor实例上操作就可以

Last updated

Was this helpful?