Centos7搭建Harbor

  • Centos7搭建Harbor已关闭评论
  • 171 次浏览
  • A+
所属分类:linux技术
摘要

最低要求: CPU2核/内存4G/硬盘40G推荐: CPU4核/内存8G/硬盘300GDocker CE 17.06版本+      本文版本:Docker CE 20.10.14


一、硬件配置及软件版本

1.服务器配置

最低要求:CPU2核/内存4G/硬盘40G

推荐:CPU4核/内存8G/硬盘300G

2.软件版本

Docker CE 17.06版本+      本文版本:Docker CE 20.10.14

Docker Compose 1.18版本+  本文版本:V2.4.1

Harbor  v2.5.0

3.安装方式

Harbor有两种安装方式:

• 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小

• 离线安装:安装包包含部署的相关镜像,因此安装包比较大

二、安装Docker和Docker Compose

1.安装docker

# 安装依赖包

yum install -y yum-utils

# 添加Docker软件包源

yum-config-manager --add-repo

https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker CE

yum install -y docker-ce

# 启动Docker服务并设置开机启动

systemctl start docker

systemctl enable docker

2.安装docker compose

 #下载

wget https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64

#移动到系统二进制目录下

mv docker-compose-linux-x86_64  /usr/bin/docker-compose

#赋可执行权限

chmod a+x /usr/bin/docker-compose

#验证是否安装成功

docker-compose --help

三、部署Harbor HTTP

1.下载安装包

本文选择离线安装方式,所以安装包有点大

wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz

2.解压修改配置

tar zxvf harbor-offline-installer-v2.5.0.tgz  cd harbor  cp harbor.yml.tmpl harbor.yml     vim harbor.yml    hostname: reg.mydomain.com #此处需要修改,IP或者域名都行   #https的四行配置需要添加注释    https:  port: 443  certificate: /your/certificate/path   private_key: /your/private/key/path             #可以修改数据目录             data_volume: /data             #可以修改harbor管理员初始密码             harbor_admin_password: Harbor12345             #可以修改日志路径             log:               level: info               local:                 rotate_count: 50                 rotate_size: 200M                 location: /var/log/harbor

3.配置加载并安装

 ./prepare

 ./install.sh

Centos7搭建Harbor

 

安装完成,可以使用docker-compose查看

Centos7搭建Harbor

4.登陆页面查看

  Centos7搭建Harbor

 

 Centos7搭建Harbor

5.本地docker登陆问题

http方式搭建的harbor本地docker登陆的时候需要配置信任,否则按https请求,会报错。配置方式如下:

IP地址为仓库地址

vim /etc/docker/daemon.json

 Centos7搭建Harbor

重启docker

四、启用HTTPS

1.生成ssl证书

可以自己生成自签证书,或者网上申请证书都可,阿里云域名可以申请免费证书

#生成自签证书

自签证书使用的时候需要做本地hosts解析

#创建证书目录

 

mkdir -p /etc/harbor/key  cd /etc/harbor/key  #生成秘钥和自签名证书:  openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt  #生成证书签名请求(域名改为自己harbor里的)这里为(harbor.my.com)  openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.my.com.key -out harbor.my.com.csr  #生成服务器证书:(域名改为自己harbor里的)这里为(harbor.my.com)  openssl x509 -req -days 365 -in harbor.my.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.my.com.crt

2.Harbor启用HTTPS

vi harbor.yml

hostname: harbor.my.com #此处需要修改成自己的域名

 https:

port: 443

certificate: /etc/harbor/key/harbor.my.com.crt

         private_key: /etc/harbor/key/harbor.my.com.key

     把以上https的四行注释去掉,然后配置实际的证书路径即可

3.重新配置并部署Harbor

./prepare

docker-compose down

docker-compose up -d

4.将证书复制到docker主机

mkdir /etc/docker/certs.d/harbor.my.com(你的域名)

cp 你的域名 /etc/docker/certs.d/harbor.my.com/harbor.my.com.crt

  到此Harbor https配置完成

 

  

五、Harbor维护

容器

功能

harbor-core

配置管理中心

harbor-db

PG数据库

harbor-jobservice

负责镜像复制

harbor-log

记录操作日志

harbor-portal

Web管理页面和API

nginx

前端代理,负责前端页面和镜像上传/下载转发

redis

会话

registryctl

镜像存储

容器数据持久化目录(可更改):/data

日志文件目录(可更改):/var/log/harbor

数据库做好定期备份。

六、配置Harbor主从复制

1.主备

• 简单,主挂了切到备Harbor

• 同一时间只有一台提供服务

• 适合少量镜像下载

2.双主

• 双向配置复制

• 两台同时提供服务

• 前面增加负载均衡器

3.一主多从

• 多个从同步主

• 适合多地区业务、大量镜像下载需求

4.主从配置步骤

 Centos7搭建Harbor

 

 Centos7搭建Harbor

提供者:选择Harbor

目标名:自定义,可填一个具有声明意义的名称

描述:自定义,可备注目标仓库的一些信息

目标URL:对端仓库的地址

访问ID:目标仓库的用户名

访问密码:访问ID的密码

验证远程证书:如果对端用的是自签证书或者非信任证书的话不要勾选此项

 Centos7搭建Harbor

 

 Centos7搭建Harbor

 

 

 

名称:自定义,有声明意义

描述:自定义,备注规则中仓库信息

复制模式:

Push-based:从本地仓库推送到远程仓库,双主模式两个harbor同时配置

Pull-based:从远程仓库拉去到本地仓库,一主多从模式的从库可配置,主从模式从库可配置

目标仓库/源仓库:对端仓库地址,在仓库管理中添加

资源过滤器:指定根据什么来同步

触发模式:一般选择事件驱动,这样主库已更新就会同步