部署环境介绍:
首先,我们准备3台机器,2台用于部署Harbor,一台用于nginx服务;
Harbor部署机器:
node01;node02
开始部署:
打开GitHub
https://github.com/goharbor/harbor
这个是Harbor在,GitHub上的项目地址
在下面的README介绍里找到版本相关信息,点击查看 Harbor release
找到你想要安装的版本,然后 Harbor offline installer 右键可以复制链接地址,然后在主机上wget下来安装包,一般安装最新版本的即可,node01和node02都需要执行
[root@node01 ~]# wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.2-rc1.tgz
[root@node01 ~]#
[root@node01 ~]# tar -xvf harbor-offline-installer-v1.9.2-rc1.tgz
[root@node01 ~]# ll
total 620028
drwxr-xr-x 3 root root 4096 Nov 4 13:30 harbor
-rw-r--r-- 1 root root 634887088 Nov 4 11:11 harbor-offline-installer-v1.9.2-rc1.tgz
解压出来一个harbor的文件夹,在进入harbor文件夹之前,先不着急下一步,我们务必先做一件事情,就是确认一下机器上是否已经安装了docker-compose,因为harbor部署脚本执行前是需要调用docker-compose的,我这里之前安装好了。
[root@node01 ~]# docker-compose --version
docker-compose version 1.22.0, build f46880fe
[root@node01 ~]#
这个是docker-compose的GitHub官方地址
https://github.com/docker/compose/releases
里面有2种docker-compose安装方法的介绍:
第一种是curl在线安装方式(看介绍里的curl方式,直接复制命令在主机上执行)
第二种是下载tar包解压缩安装方式(往下找Assets里可以找到安装包,下载安装后放到/usr/local/bin/下并赋予执行权限)
实在不会安装的话就用第三种:
https://pan.baidu.com/s/1N25H3ej5HUatCsNrVyOsZw
提取码:4k1e
把我上传压缩包下载放到服务器上,然后按照下面的操作即可
[root@node01 docker-compose]# ll
total 11476
-rw-r--r-- 1 root root 11750136 Nov 4 11:00 docker-compose-Linux-x86_64-1.22.0
[root@node01 docker-compose]#
[root@node01 docker-compose]#
[root@node01 docker-compose]# mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/docker-compose
[root@node01 docker-compose]#
[root@node01 docker-compose]#
[root@node01 docker-compose]# chmod +x /usr/local/bin/docker-compose
[root@node01 docker-compose]#
[root@node01 docker-compose]# docker-compose --version
docker-compose version 1.22.0, build f46880fe
[root@node01 docker-compose]#
确认docker-compose安装完毕后,再确认一下机器上是不是已经跑了80端口的web服务,有的话先停了;接下来就是不熟harbor
进入刚才解压缩出来的harbor目录下,编辑harbor.yml文件
harbor.yml
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 172.19.195.212
# http related config
把yml文件里的hostname:后面改成你那台机器的IP地址,2台机器都需要改成各自的hostname:IP地址
保存关闭;
执行 bash -x install.sh
然后脚本执行完毕后就部署结束,脚本执行完毕后,会看到最后出来一段提示如下:
Now you should be able to visit the admin portal at http://172.19.195.212.
For more details, please visit https://github.com/goharbor/harbor .
'
+ printf '✔ %s\n' '----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://172.19.195.212.
For more details, please visit https://github.com/goharbor/harbor .
'
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://172.19.195.212.
For more details, please visit https://github.com/goharbor/harbor .
如果是内网或者虚拟机部署的,即打开 http://172.19.195.212 就能看到harbor的登录了,如果是在阿里云或者腾讯云等云主机部署的,则需要在浏览器中打开172.19.195.212对应的公网IP地址去打开浏览。
2台机器都部署好并出现结束语的提示;
nginx做负载均衡访问
接下来做一个nginx的upstream代理做负载均衡,这里只是一个nginx配置的实例参考;并且这一步根据需求操作,没有需求可以直接跳过,不影响整体搭建。
在nginx.conf配置中加上一个upstream的配置 server的2个地址则是刚才部署harbor的2台机器IP,端口是80.
upstream harbor{
server 172.19.195.212:80;
server 172.19.195.213:80;
}
server{
listen 80; #端口
server_name harbor.wangting.fun; #服务名
charset utf-8; # 避免中文乱码
autoindex on;
location / {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://harbor;
}
}
重载配置 : /etc/init.d/nginx reload
验证部署结果:
之后就可以登录,直接点击 http://harbor.wangting.fun 就可以访问了,并且还是负载均衡的2台机器调用。
注意:这里只是做一个简单的部署介绍,用于学习参考,实际生产使用,配置文件则需要做更多方面的配置修改,不可能这样简单的部署就投入使用了,比如harbor设置数据盘存储路径,高可用集群数据库配置等等。
如果是初次搭建
默认登录用户名:admin
默认登录的密码:Harbor12345
到这里整个搭建已经全部完毕了,Harbor详细的使用方法,还请自行百度学习。
简单的使用介绍:
第一次使用时,需要去配置一下docker的配置文件,因为默认是443端口访问的,直接使用会出现connect: connection refused这样的错误提示
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://dm8leeoe.mirror.aliyuncs.com"],
"insecure-registries": ["172.19.195.212"]
}
加上"insecure-registries": ["172.19.195.212"]-----# IP换成自己部署的机器IP
[root@node01 harbor]# systemctl daemon-reload
[root@node01 harbor]# systemctl restart docker
[root@node01 harbor]# docker-compose restart
[root@node01 harbor]# docker login 172.19.195.212
输入Harbor的账号密码,之后推送一个镜像试一下
[root@node01 harbor]# docker pull openjdk:8-jre-alpine
[root@node01 harbor]#
[root@node01 harbor]# docker tag openjdk:8-jre-alpine 172.19.195.212/library/openjdk:8-jre-alpine
[root@node01 harbor]#
[root@node01 harbor]# docker push 172.19.195.212/library/openjdk:8-jre-alpine
The push refers to repository [172.19.195.212/library/openjdk]
edd61588d126: Pushed
9b9b7f3d56a0: Pushed
f1b5933fe4b5: Pushed
8-jre-alpine: digest: sha256:b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52 size: 947
截止到这,镜像已经成功推到仓库去了,我们再用界面打开复核验证一下,可以正常的查到。