Harbor

什么是Harbor

Harbor 是一个开源的企业级容器镜像注册中心,用于管理和存储 Docker 镜像以及其他容器化应用的相关资源。它允许团队或组织在内部搭建自己的容器镜像仓库,以便更好地控制镜像的分发、访问和安全性。

Harbor的安装

安装最小配置

最低建议配置:

  • CPU:2 核
  • 内存:4 GB
  • 存储:40 GB

通过docker-compose部署Harbor

离线安装

# 下载安装包
wget https://github.com/goharbor/harbor/releases/download/v2.8.4/harbor-offline-installer-v2.8.4.tgz
  1. 修改harbor.yaml中hostname为harborip,https/certificate和private_key为

    certificate: /root/edgestack-setup/harbor/cert/cert.cert
    private_key: /root/edgestack-setup/harbor/cert/key.key
  2. 生成cert.certkey.key文件到/root/edgestack-setup/harbor/cert/

  3. 执行sh install.sh

  4. **为了docker,在不验证https的情况下,可以通过修改docker-daemon

// /etc/docker/docker-daemon
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://harborip:443"
],
"insecure-registries":

"harborip:443"
]
}

systemctl daemon-reload

# 重启docker
service docker restart
# 开机自动启动,防止需要手动启动
systemctl enable docker.service
生成证书颁发机构证书

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

  1. 生成 CA 证书私钥。

    openssl genrsa -out ca.key 4096
  2. 生成 CA 证书。
    调整选项中的值-subj以反映您的组织。如果您使用 FQDN 连接 Harbor 主机,则必须将其指定为公用名 ( CN) 属性。

    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
生成服务器证书

证书通常包含一个.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=hostname
    EOF
  4. 使用该v3.ext文件为您的 Harbor 主机生成证书。
    yourdomain.com将CRS 和 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

helm安装

# 1.添加helm仓库
helm repo add harbor https://helm.goharbor.io
helm fetch harbor/harbor --untar

# 2.修改values.yaml文件

# 3.helm3安装
helm install my-release harbor/