harbor安装
1.安装先决条件
1.1 系统环境说明
硬件
资源 | 最低 | 推荐 |
---|---|---|
cpu | 2c | 4c |
内存 | 4GB | 8GB |
硬盘 | 40GB | 160GB |
软件
软件 | 版本 | 描述 |
---|---|---|
docker | 17.06.0-ce+ | 有关安装说明,请参阅 Docker 引擎文档 |
docker-compose | docker-compose (v1.18.0+) 或 docker-compose v2 (docker-compose-plugin) | 有关安装说明,请参阅 Docker Compose 文档 |
Openssl | 最新版优先 | 用于为Harbor生成证书和密钥 |
网络端口
端口 | 协议 | 描述 |
---|---|---|
443 | HTTPS | Harbor 门户和核心 API 在此端口上接受 HTTPS 请求。您可以在配置文件中更改此端口。 |
4443 | HTTPS | 连接到 Harbor 的 Docker Content Trust 服务。只有在启用 Notary 时才需要。您可以在配置文件中更改此端口。 |
80 | HTTP | Harbor 门户和核心 API 在此端口上接受 HTTP 请求。您可以在配置文件中更改此端口。 |
1.2 安装docker
# 阿里云yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl start docker && systemctl enable docker
# 配置阿里云镜像加速地址
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gqk8w9va.mirror.aliyuncs.com"]
}
EOF
# 配置完成后重启docker
systemctl restart docker
1.3 安装docker-compose
export DOCKER_COMPOSE_VERSION=2.17.3
curl -L "https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSIO}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
2.下载安装包
说明
harbor有2种安装方式
- 在线安装程序 :在线安装程序从 Docker hub 下载Harbor镜像,因此安装程序的体积非常小。安装包名称
harbor-online-installer-v{version}.tgz
- 离线安装程序 :如果要部署 Harbor 的主机没有连接到 Internet,请使用离线安装程序。离线安装程序包含预构建的图像,因此它比在线安装程序大。安装包名称
harbor-offline-installer-v{version}.tgz
2.1 创建目录
[ -d /data ] || mkdir /data && cd /data
2.2 下载安装包
# 下载安装包
wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-online-installer-v2.8.0.tgz
2.3 验证包(可选)
可下载相应 *.asc
文件以验证包是否为正版
wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz.asc
2.4 解压缩安装包
tar xf harbor-online-installer-v2.8.0.tgz && cd harbor
3.配置对harbor的https访问
3.1 生成证书颁发机构证书
3.1.1 创建证书存放目录
# 当前目录为 /data/harbor/cert
mkdir cert && cd cert
3.1.2 生成ca证书私钥
# 会生成 ca.key
$ openssl genrsa -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
......................................................................................................................................++
..........................................................++
e is 65537 (0x10001)
3.1.3 生成ca证书
# 会生成 ca.crt
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=ops/OU=ops/CN=harbor.ops.com" \
-key ca.key \
-out ca.crt
3.2 生成服务器证书
3.2.1 生成私钥
# 会生成 harbor.ops.com.key
openssl genrsa -out harbor.ops.com.key 4096
3.2.2 生成证书签名请求 (CSR)
说明
调整选项中的值 -subj
以反映您的组织 。如果使用 FQDN 连接 Harbor 主机,则必须将其指定为通用名称 ( CN
) 属性,并在密钥和 CSR 文件名中使用它。
# 会生成 harbor.ops.com.csr
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=ops/OU=ops/CN=harbor.ops.com" \
-key harbor.ops.com.key \
-out harbor.ops.com.csr
3.2.3 生成 x509 v3 扩展文件
说明
无论您是使用 FQDN 还是 IP 地址连接到您的 Harbor 主机,您都必须创建此文件,以便您可以为您的 Harbor 主机生成符合主题备用名称 (SAN) 和 x509 v3 的证书扩展要求。替换 DNS
条目以反映您的域。
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.ops.com
DNS.2=harbor.ops
DNS.3=harbor
EOF
3.2.4 使用 v3.ext
文件生成证书
# 会生成 ca.srl 和 harbor.ops.com.crt
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.ops.com.csr \
-out harbor.ops.com.crt
3.3 向harbor和docker提供证书
生成 ca.crt
、 yourdomain.com.crt
和 yourdomain.com.key
文件后,必须将它们提供给 Harbor 和 Docker,并重新配置 Harbor 以使用它们。
3.3.1 转换 .crt
为 .cert
说明
Docker 守护进程将 .crt
文件解释为 CA 证书,.cert
将文件解释为客户端证书。
# 转换证书文件
openssl x509 -inform PEM -in harbor.ops.com.crt -out harbor.ops.com.cert