Harbor安装教程-完全根据官方文档2.6.0版本

说明:

  • 版本2.6.0

一、安装要求

硬件

硬件类型最小要求建议
CPU2 CPU4 CPU
内存4 GB8GB
硬盘40 GB160 GB

软件

软件名称版本
Docker engine17.06.0-ce+或更高
Docker Composedocker-compose(v1.18.0+)或者docker coompose v2(docker-compose-plugin)
Openssl首选最新版本

网络端口

端口协议描述
443httpsHarbor门户和核心API接受在此端口上的https请求,你可以在配置文件中改变这个端口
4443https为了让Harbor连接到Docker Content Trust服务,只在启用Notary的时候需要,可以在配置文件中改变这个端口
80httpHarbor门户和核心API接受在此端口上的http请求,你可以在配置文件中改变这个端口

二、下载安装工具

安装工具有以下两种:

  • 在线安装工具
    • 从Docker Hub下载镜像,因此,安装工具的体积特别小
  • 离线安装工具
    • 如果安装Harbor的主机没有连接网络可以选择这种方式。

以上这两种方式的安装过程大致相同

1. 根据你的情况去下载对应的安装工具

如下图:
在这里插入图片描述

2. 验证安装工具是正版(可选步骤,如果你从官网下载的,不验证也没关系

*.asc文件是OpenPGP文件,可以验证你下载的工具是不是正版

  1. ①、首先通过以下命令获取公钥
gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115C
  1. ②、验证安装工具包是正版
    在线安装工具包
    gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-online-installer-version.tgz.asc
    
    离线安装工具包
    gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-offline-installer-version.tgz.asc
    

3. 解压安装工具包

在线安装工具包

tar xzvf harbor-online-installer-version.tgz

离线安装工具包

tar xzvf harbor-offline-installer-version.tgz

三、配置https访问Harbor

如果启用了Content Trust with Notary去为镜像签名,那么,你必须使用https.

1. 生成一个CA证书

    1. 生成一个CA证书私钥
    openssl genrsa -out ca.key 4096
    
    1. 生成CA证书
      如果你使用FQDN((Fully Qualified Domain Name)全限定域名)去连接你的Habor主机,则必须配置-subj的CN选项,值为Habor的FQDN
    openssl req -x509 -new -nodes -sha512 -days 3650 \
     -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
     -key ca.key \
     -out ca.crt
    

2. 生成一个服务器证书

    1. 生成私钥
    openssl genrsa -out yourdomain.com.key 4096
    
    1. 生成证书签名请求(CSR)
      调整-subj的值以体现你公司的信息,如果你用FQDN((Fully Qualified Domain Name)全限定域名)去连接你的Habor主机,则必须配置-subj,并且CN选项值为FQDN,并且这个值也要用在key选项和CSR的文件名
    openssl req -sha512 -new \
        -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
        -key yourdomain.com.key \
        -out yourdomain.com.csr
    
    1. 生成一个x509 v3扩展文件
      不管你是使用FQDN还是IP连接你的Harbor主机,你必须创建这个文件,这样你才可以为Harbor主机生成符合Subject Alternative Name (SAN)x509 v3扩展要求的证书
    cat > v3.ext <<-EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1=yourdomain.com
    DNS.2=yourdomain
    DNS.3=hostname
    EOF
    
    1. 使用v3.ext文件去为你的Harbor主机生成证书
      用你安装Harbor的主机名替换掉下面CRS和CRT文件名中的yourdomain.com
    openssl x509 -req -sha512 -days 3650 \
        -extfile v3.ext \
        -CA ca.crt -CAkey ca.key -CAcreateserial \
        -in yourdomain.com.csr \
        -out yourdomain.com.crt
    

3. 向Harbor和Docker提供证书

在生成ca.crt,yourdomain.com.crtyourdomain.com.key文件后,你必须将他们提供给Harbor和Docker,用它们来重新配置Harbor.

    1. 在你的Harbor主机上复制服务器证书和key到证书文件夹
    cp yourdomain.com.crt /data/cert/
    cp yourdomain.com.key /data/cert/
    
    1. youdomain.com.crt转换成yourdomain.com.cert以供docker使用
      Docker守护进程将.crt文件解释为CA证书,将.cert文件解释为客户端证书。
    openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
    
    1. 在Harbor主机上复制服务器证书,key和CA文件到Docker证书文件夹(可能需要你先创建这些文件夹)
    cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
    cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
    cp ca.crt /etc/docker/certs.d/yourdomain.com/
    
    注意:如果你将nginx默认端口443映射到了一个不同的端口,创建以下文件夹:
    /etc/docker/certs.d/yourdomain.com:port或者/etc/docker/certs.d/harbor_IP:port
    1. 重启Docker Engine
    systemctl restart docker
    

四、配置Harbor的yml文件

在你下载的安装工具包中包含harbor.yml文件,这个就是配置文件,其中必要的参数都没有被#注释,可选的参数都被#注释,请注意,不要删除或注释必要的参数,这些参数可以不必修改,保持默认即可,以下两项必须修改:

  • hostname:
  • https:

hostname的值必须改成你自己安装Harbor机器的域名
在这里插入图片描述
如果你配置了https,请修改此项
在这里插入图片描述
其他的一些配置项,请参阅

五、 配置内置的TLS 作为Harbor组件之间的交互(可选的,如果你实在不想用https)

在v2.0版本之前,Harbor组件(harbor-core,harbor-jobservice,proxy,harbor-portal,registry,registryctl,trivy_adapter,chartmuseum)之间使用http交互,2.0版本之后TLS可以用在内部网络,在生产环境中,最好还是使用https.

    1. harbor.yml中设置
    	internal_tls:
    		enable: true
    		dir: /etc/harbor/tls/internal #包含内部证书的文件夹
    
    1. 证书可以通过prepare工具自动生成
    docker run -v /:/hostfs goharbor/prepare:v2.1.0 gencert -p /path/to/internal/tls/cert
    
    也可以通过自己的CA去生成证书,只需要把证书和key放到内部tls证书目录并且命名为harbor_internal_ca.keyharbor_internal_ca.crt,所有的组件都可以。但是这种方式有以下约束:
    • 所有的证书必须被单个唯一的CA签名
    • 内部证书的文件名和证书文件的CN属性必须遵循以下表格中的约定
    • 因为没有SAN的自签名证书在Golang 1.5中已被弃用,所以您必须在自己生成证书时将SAN扩展添加到您的证书文件中,否则Harbor实例将无法正常启动。SAN扩展中的DNS名称应与下表中的CN字段相同
nameusageCN
harbor_internal_ca.keyca’s key file for internal TLSN/A
harbor_internal_ca.crtca’s certificate file for internal TLSN/A
core.keycore’s key fileN/A
core.crtcore’s certificate filecore
job_service.keyjob_service’s key fileN/A
job_service.crtjob_service’s certificate filejobservice
proxy.keyproxy’s key fileN/A
proxy.crtproxy’s certificate fileproxy
portal.keyportal’s key fileN/A
portal.crtportal’s certificate fileportal
registry.keyregistry’s key fileN/A
registry.crtregistry’s certificate fileregistry
registryctl.keyregistryctl’s key fileN/A
registryctl.crtregistryctl’s certificate fileregistryctl
notary_server.keynotary_server’s key fileN/A
notary_server.crtnotary_server’s certificate filenotary-server
notary_signer.keynotary_signer’s key fileN/A
notary_signer.crtnotary_signer’s certificate filenotary-signer
trivy_adapter.keytrivy_adapter.’s key fileN/A
trivy_adapter.crttrivy_adapter.’s certificate filetrivy-adapter
chartmuseum.keychartmuseum’s key fileN/A
chartmuseum.crtchartmuseum’s certificate filechartmuseum

六、运行安装脚本

1. 安装

可以安装Harbor使用不同的配置

  • 默认安装,仅Harbor,不包含Notary、Trivy、Chart Repository Service
  • 包含Noatary
  • 包含Trivy
  • 包含Chart Repository Service
  • 包含两个或者所有的服务

①. 默认安装,不包含Notary、Trivy、Chart Repository Service

sudo ./install.sh

成功之后,打开你在harbor中配置的hostname就可以访问,默认的用户名密码是adminHarbor12345
然后就可以使用docker去使用了,例如:

docker login reg.yourdomain.com
docker push reg.yourdomain.com/myproject/myrepo:mytag

②. 包含Notary

此时,你必须配置https

sudo ./install.sh --with-notary

③. 包含Trivy

sudo ./install.sh --with-trivy

关于Trivy的更多信息,可以参考Trivy官方文档

④. 包含Chart Repository Service

sudo ./install.sh --with-chartmuseum

⑤. 包含多个

sudo ./install.sh --with-notary --with-trivy --with-chartmuseum

2. 通过Http连接到Harbor

如果你使用http而不是https,请注意要在docer daemon的配置文件(/etc/docker/daemon.json)中进行配置

{
"insecure-registries" : ["myregistrydomain.com:5000", "0.0.0.0"]
}

编辑完记得重启docker

#重启docker
systemctl restart docker
#停止Harbor
docker-compose down -v
#重启启动Harbor
docker-compose up -d

七、重新配置Harbor

运行安装工具包中的prepare

bash ./prepare

停止和启动Harbor

docker-compose down -v
docker-compose up -d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EmptyCastle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值