Harbor的使命是成为kubernetes值得信赖的云原生存储库。
Harbor 是一个开源注册仓库,它通过策略和基于角色的访问控制来保护工件,确保扫描映像并消除漏洞,并将映像标记为受信任。Harbor是CNCF项目,提供合规性、性能和互操作性,帮助跨云原生计算平台(k8s,Docker)一致、安全地管理工件。
Harbor部署为多个Docker容器。可以在任何支持Docker的Linux发行版上部署。目标主机需要具备docker及docker-compose环境。
软件 | 版本 | 描述 |
Docker Engine | V 17.06.0-ce or later | Docker 引擎版本要求 |
Docker compose | Version 1.18.0 或更高 | Docker 编排 |
Openssl | 建议最新版本 | 未Harbor提供证书和key |
Port | 协议 | 描述 |
443 | HTTPS | Harbor Portal和核心API 通过此端口接受HTTPS请求 |
4443 | HTTPS | 连接到Harbor的 Docker Content Trust服务,仅当启用了公证人时需要 |
80 | HTTP | Harbor Portal和核心API 通过此端口接受HTTP请求 |
可以通过官方 release页面下载Harbor安装程序——在线安装或者离线安装。
# 在线安装包
tar -zxvf harbor-online-installer-v2.5.3.tgz
# 离线安装包
tar -zxvf harbor-offline-installer-v2.5.3.tgz默认情况下,Harbor不附带证书。
要配置HTTPS,必须创建SSL证书。可以使用第三方受信任的CA颁发机构的证书也可使用自己对自己签发的证书。该小节将使用OpenSSL来创建CA,并使用CA 签发服务器证书和Client证书。
(一)生成证书颁发机构证书
openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
..................................++++
......................................................................................................................................++++
e is 65537 (0x010001)openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=QingDao/L=QingDao/O=example/OU=Runo/CN=harbor.domain.com" \
-key ca.key \
-out ca.crt(二)生成服务器证书
openssl genrsa -out harbor.domain.com.key 4096openssl req -sha512 -new \
-subj "/C=CN/ST=QingDao/L=QingDao/O=example/OU=Runo/CN=harbor.domain.com"
-key harbor.domain.com.key \
-out harbor.domain.com.csrcat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.domain.com
DNS.2=harbor.domain
DNS.3=harbor.domain.com
EOFopenssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.domain.com.csr \
-out harbor.domain.com.crt(三)将证书提供给Docker和Harbor
Docker 守护进程将 .crt 文件解释为 CA 证书,将 .cert 文件解释为客户端证书。
(四)配置操作系统信任证书
cp harbor.domain.com.crt /etc/pki/ca-trust/source/anchors/harbor.domain.com.crt
update-ca-trust(五)证书相关文件
修改harbor配置文件harbor.yml
[root@harbor harbor]# cat harbor.yml |grep -Ev "^#|^$|#"
hostname: 10.100.202.211
http:
port: 80
https:
port: 443
certificate: /data/harbor-cert/harbor.domain.com.crt # 配置SSL证书
private_key: /data/harbor-cert/harbor.domain.com.key # 配置SSL key
harbor_admin_password: ****** # 设置harbor 管理员账号admin的免密
database:
password: ****** # 设置PostgreSQL 数据库的密码
max_idle_conns: 100
max_open_conns: 900
data_volume: /data/harbor-data
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
insecure: false
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
_version: 2.5.0
proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- trivy
upload_purging:
enabled: true
age: 168h
interval: 24h
dryrun: false./install.shharbor所需各容器启动完成后,通过IP地址进行访问
至此,Harbor仓库搭建完成。
| 留言与评论(共有 0 条评论) “” |