大家好!我是键客李大白,今天分析一个部署Harbor的方法。
1 Harbor的5种安装方式
- 在线安装:适合初学者快速搭建一个Harbor仓库,简单快速,安装过程需要从官方拉取镜像,资源包带online。
- 离线安装:适合公司内网环境,离线安装包装载了安装过程需要的镜像(自动导入),资源包带offline。
- 源码安装:适合开发者对Harbor进行开发和测试,通过编译源码到本地进行安装,安装条件较苛刻,需要了解Harbor底层原理和实现方式的,可选择源码安装的方式;
- Heml Chart:通过Heml安装Harbor到 kubernetes集群;
每种安装方式都可以实现Habor的高可用(高可用方案官方建议使用kubernetes的安装方式,其他方式官方并不维护),防止单点故障,楼主本篇分享的是【在线安装】的部署方式,需要保证主机能ping通百度,因为在线安装是从网上下载镜像的。
2 下载安装包
官方下载地址:https://github.com/goharbor/harbor/releases
2.1 官网下载安装包
找到对应的版本(本处以2.3.5,当前最新为2.5.0),建议为2版本。
还记得带online的包是干嘛的嘛?不记得就翻下笔记!右键安装包,选择“复制链接地址”
[root@prometheus ~]# yum install -y wget[root@prometheus ~]# wget https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-online-installer-v2.3.5.tgz
说明:wget命令可从指定路径下载文件到当前主机路径,将“复制链接地址”的链接放到wget后即可下载。
2.2 解压安装包
[root@harbor ~]# tar zxvf harbor-online-installer-v2.3.5.tgzharbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@harbor ~]# cd harbor/
[root@harbor harbor]# ls
common.sh harbor.yml.tmpl install.sh LICENSE prepare
说明:
install.sh: 安装的脚本;
harbor.yml.tmp1: 为配置文件模板;
prepare:准备脚本,将harbor.yml配置文件的内容注入到各组件的配置文件中;
LICENSE:许可文件;
common.sh:安装脚本的工具脚本;
3 部署环境
- 操作系统: CentOS-7.8
- 主机IP:195.168.2.81
- 资源:2C、4G内存
- Harbor版本:2.3.5
- 安装软件:docker-ce-19.03.8、docker-compose
4 安装docker-ce和docker-compose
harbor在线安装是以docker-compose和镜像的方式启动相关服务的。
- 安装docker-ce(19.03.8)
链接:https://pan.baidu.com/s/1NbM6mlnkkch9bUa67ONICw
提取码:vgb5
[root@harbor ~]# cd docker-ce-rpm/
[root@harbor docker-ce-rpm]# yum install -y ./*.rpm
[root@harbor docker-ce-rpm]# cd ~
[root@harbor ~]# systemctl enable --now docker
[root@harbor ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
- 安装docker-compose
下载地址:https://github.com/docker/compose/releases/download/
docker-compose的版本在1.18.0+
# wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64# cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version //查看版本
Docker Compose version v2.2.3
5 配置内核参数
[root@harbor ~]# modprobe br_netfilter //加载内核模块(临时)[root@harbor ~]# cat > /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
[root@harbor ~]# sysctl -p //重新加载内核配置
说明:
net.ipv4.ip_forward:数据包转发,容器部署的服务是从docker0网卡提供访问的,但流量是从主机的网卡(ens33/eth0/bond0)访问服务,需要开启数据包转发功能(必须)。
6 修改配置
- 创建配置文件
使用安装包的配置文件模板创建配置文件
[root@harbor harbor]#[root@harbor harbor]# pwd
/root/harbor
[root@harbor harbor]# ls
common.sh harbor.yml.tmpl install.sh LICENSE prepare
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
- 修改配置
hostname: 192.168.2.81 //主机名或主机IP地址
http:
port: 80
#https:
# port: 443
# certificate: /your/certificate/path
# private_key: /your/private/key/path
harbor_admin_password: Harbor12345 //Harbor的登录密码,不需要修改
_version: 2.3.5 //Harbor版本号,需要修改为当前的版本号
说明:
https安装端口需要自己制作证书,来增加Harbor的安全性,本处为在线安装,主要用于测试,将https注释掉;本专栏的离线部署(生产内网)等都会配置https安全,有兴趣可进本专栏阅读。
配置文件的详细配置见官网(https://goharbor.io/docs/2.3.0/install-config/configure-yml-file/)
官网太专业不理解?本专栏也安排了。
7 安装Harbor
- 执行install.sh安装脚本
/root/harbor
# ./install.sh
过程会从网上拉取镜像,install完成后会自动启动相关服务;
- 查看服务状态
NAME COMMAND SERVICE STATUS PORTS
harbor-core "/harbor/entrypoint.…" core running (starting)
harbor-db "/docker-entrypoint.…" postgresql running (starting)
harbor-jobservice "/harbor/entrypoint.…" jobservice running (starting)
harbor-log "/bin/sh -c /usr/loc…" log running (starting) 127.0.0.1:1514->10514/tcp
harbor-portal "nginx -g 'daemon of…" portal running (starting)
nginx "nginx -g 'daemon of…" proxy running (starting) 0.0.0.0:80->8080/tcp
redis "redis-server /etc/r…" redis running (starting)
registry "/home/harbor/entryp…" registry running (starting)
registryctl "/home/harbor/start.…" registryctl running (starting)
running状态为正常!
8 登录Harbor
使用主机IP+端口进行登录: http://192.68.2.81:80
登录进去后的界面:
文末思考
Harbor有哪几种安装方式?它们有何区别?
无法访问harbor服务怎么排查?