harbor 离线安装

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了harbor 离线安装相关的知识,希望对你有一定的参考价值。


id: index
title: Harbor

本例以 harbor v2.6.1 为例,其他版本请根据实际情况执行。

下载离线包

官方下载地址:harbor-offline-installer-$VERSION.tgz

具体版本一般用最新版即可,实际根据自己需求而定。

配置和安装

放置安装包

# 移动离线安装包
mv harbor-offline-installer-v2.6.1.tgz /usr/local/ && cd /usr/local/
# 解压缩
tar -zxvf harbor-offline-installer-v2.6.1.tgz && cd harbor/
# 拷贝配置文件
cp harbor.yml.tmpl harbor.yml

修改配置文件中 hostname 为实际域名,例如 harbor.yourdomain.com

如果你需要设定 harbor 数据目录位置,请修改 harbor.yml 中的 data_volume: /data 为自定义路径,例如修改为 data_volume: /opt/soft/harbor/data

配置文件中的 harbor_admin_password 为 harbor 的密码,请按需修改。

准备https证书

在生产环境中,您应该从 CA 获得证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。

生成证书颁发机构证书

1、生成 CA 证书私钥

cd /usr/local/harbor/
mkdir -p ssl && cd $_
openssl genrsa -out ca.key 4096

2、生成 CA 证书

调整 -subj 选项中的值以反映您的组织。如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名 (CN) 属性。

openssl req -x509 -new -nodes -sha512 -days 3650 \\
 -subj "/C=CN/ST=Jiangsu/L=Nanjing/O=example/OU=Person/CN=yourdomain.com" \\
 -key ca.key \\
 -out ca.crt

生成服务器证书

证书通常包含一个 .crt 文件和一个 .key 文件,例如 yourdomain.com.crtyourdomain.com.key

1、生成私钥

openssl genrsa -out yourdomain.com.key 4096

2、生成证书签名请求 (CSR)

调整 -subj 选项中的值以反映您的组织。如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名称 ( CN) 属性并在密钥和 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

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=yourdomain.com
DNS.2=yourdomain
DNS.3=harbor.yourdomain.com
DNS.4=hostname
EOF

4、使用该v3.ext文件为您的 Harbor 主机生成证书

将yourdomain.comCRS 和 CRT 文件名中的 替换为 Harbor 主机名。

openssl x509 -req -sha512 -days 3650 \\
    -extfile v3.ext \\
    -CA ca.crt -CAkey ca.key -CAcreateserial \\
    -in yourdomain.com.csr \\
    -out yourdomain.com.crt

5、转换yourdomain.com.crt为yourdomain.com.cert, 供 Docker 使用

Docker 守护进程将 .crt 文件解释为 CA 证书,将 .cert 文件解释为客户端证书。

openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert

向 Harbor 和 Docker 提供证书

生成 ca.crtyourdomain.com.crtyourdomain.com.key 文件后,您必须将它们提供给 Harbor 和 Docker,并重新配置 Harbor 以使用它们。

1、将服务器证书和密钥复制到 Harbor 主机上,并修改配置文件 harbor.yml 中 https 对应的证书路径,配置片段如下示例:

https:
  # https port for harbor, default is 443
  port: 843
  # The path of cert and key files for nginx
  certificate: /usr/local/harbor/ssl/yourdomain.com.crt
  private_key: /usr/local/harbor/ssl/yourdomain.com.key

2、将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须先创建适当的文件夹。

mkdir -p /etc/docker/certs.d/yourdomain.com/
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.

以下示例说明了使用自定义证书的配置。

/etc/docker/certs.d/
    └── yourdomain.com:port
       ├── yourdomain.com.cert  <-- Server certificate signed by CA
       ├── yourdomain.com.key   <-- Server key signed by CA
       └── ca.crt               <-- Certificate authority that signed the registry certificate

3、重启 Docker 引擎。

systemctl restart docker

启动服务

cd /usr/local/harbor/
mkdir -p /var/log/harbor/
./install.sh
./prepare
docker-compose up -d

(END)

以上是关于harbor 离线安装的主要内容,如果未能解决你的问题,请参考以下文章

harbor 离线安装

centos 7离线安装harbor

Harbor高可用集群设计及部署(实操+视频),基于离线安装方式

系列CentOS 7.3 离线安装(无网络环境)CI CD环境之harbor

harbor离线安装

在linux上离线安装harbor的docker 私有仓库