简介
Harbor是一个开源注册表,通过策略和基于角色的访问控制来保护工件,确保图像被扫描并没有漏洞,并将图像标记为可信。Harbor是一个CNCF毕业项目,它提供了合规性、性能和互操作性,帮助您在Kubernetes和Docker等云原生计算平台上一致、安全地管理工件。
安装
harbor可在kubernets中部署,但是我们直接在宿主机安装harbor让镜像仓库与集群解耦 Harbor docs | Harbor Installation and Configuration (goharbor.io)
安装过程
标准Harbor安装过程包括以下阶段::
1. 确保您的目标主机符合Harbor Installation Prerequisites.
港口部署为多个Docker集装箱。因此,您可以在任何支持Docker的Linux发行版上部署它。目标主机需要安装Docker和Docker Compose。
Hardware
下表列出了用于部署Harbor的最低硬件配置和建议的硬件配置。
| 资源 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2 CPU | 4 CPU |
| Mem | 4 GB | 8 GB |
| Disk | 40 GB | 160 GB |
Software
下表列出了必须安装在目标主机上的软件版本。
| 软件 | 版本 | 描述 |
|---|---|---|
| Docker Engine | Version 17.06.0-ce+ or higher | 有关安装说明, see Docker Engine documentation |
| Docker Compose | docker-compose (v1.18.0+) or docker compose v2 (docker-compose-plugin) | 有关安装说明, see Docker Compose documentation |
| OpenSSL | Latest is preferred | 用于生成Harbor的证书和密钥 |
Network ports
Harbor要求在目标主机上打开以下端口。
| 端口 | 协议 | 描述 |
|---|---|---|
| 443 | HTTPS | Harbor门户和核心API在此端口上接受HTTPS请求。您可以在配置文件中更改此端口。 |
| 4443 | HTTPS | 连接到Harbor的Docker Content Trust服务。仅在启用公证时才需要。您可以在配置文件中更改此端口。 |
| 80 | HTTP | Harbor门户和核心API在此端口上接受HTTP请求。您可以在配置文件中更改此端口。 |
2. 下载Harbor安装程序
您可以从 official releases页面下载Harbor安装程序。下载联机安装程序或脱机安装程序。
- Online installer: 在线安装程序从Docker hub下载Harbor镜像。因此,安装程序的尺寸非常小。
- Offline installer: 如果要部署Harbor的主机没有连接到Internet,请使用脱机安装程序。脱机安装程序包含预构建的映像,因此它比联机安装程序大。
联机和脱机安装程序的安装过程几乎相同。
下载并解压安装程序
-
下载要安装的版本的联机或脱机安装程序。
-
可选择下载相应的
*.asc文件,以验证软件包是否为正版。*.asc文件是一个OpenPGP密钥文件。执行以下步骤以验证下载的捆绑包是否为正版。-
获取
*.asc文件的公钥。gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115C您应该看到消息
public key "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" imported -
通过运行以下命令之一来验证程序包是否为正版。
-
在线安装程序:
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
gpg命令验证捆绑包的签名是否与*.asc密钥文件的签名匹配。您应该看到签名正确的确认。gpg: armor header: Version: GnuPG v1 gpg: assuming signed data in 'harbor-online-installer-v2.0.2.tgz' gpg: Signature made Tue Jul 28 09:49:20 2020 UTC gpg: using RSA key 644FF454C0B4115C gpg: using pgp trust model gpg: Good signature from "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 7722 D168 DAEC 4578 06C9 6FF9 644F F454 C0B4 115C gpg: binary signature, digest algorithm SHA1, key algorithm rsa4096 -
-
-
使用
tar提取安装程序包:-
在线安装程序:
bash $ tar xzvf harbor-online-installer-version.tgz -
离线安装程序:
bash $ tar xzvf harbor-offline-installer-version.tgz
-
3. 配置对Harbor的HTTPS访问(不使用https访问可跳过)
4. 配置Harbor YML文件
您可以在安装程序包中包含的Harbor.yml文件中为Harbor设置系统级参数。当您运行install.sh脚本来安装或重新配置Harbor时,这些参数将生效。
在初始部署之后以及启动Harbor之后,您将在Harbor Web Portal中执行额外的配置。
5. 配置Harbor组件之间的内部TLS通信(不使用https访问可跳过)
6. 运行安装脚本
一旦您配置了从harbor.yml.tmpl复制的harbor.ml并可选地设置了存储后端,就可以使用install.sh脚本安装并启动harbor。请注意,在线安装程序可能需要一些时间才能从Docker hub下载所有harbor映像。
您可以在不同的配置中安装Harbor:
- 仅Harbor,无Notary和Trivy
- Harbor与Notary
- Trivy与Harbor
- Harbor与Notary和Trivy
默认安装不带Notary和Trivy
默认的Harbor安装不包括Notary服务或Trivy服务。运行以下命令
sudo ./install.sh
如果安装成功,您可以打开浏览器访问Harbor界面,网址为http://reg.yourdomain.com,将reg.yourdomain.com更改为您在harbor.yml中配置的主机名。如果您没有在harbour.yml中将其更改,则默认的管理员用户名和密码为admin和Harbor12345。
登录到管理门户并创建一个新项目,例如myproject。然后,您可以使用Docker命令登录到Harbor,标记图像,并将它们推送到Harbor。
docker login reg.yourdomain.com
docker push reg.yourdomain.com/myproject/myrepo:mytag
- 如果Harbor的安装使用HTTPS,则必须向Docker客户端提供Harbor证书。仅供参考, see Configure HTTPS Access to Harbor.
- 如果Harbor的安装使用HTTP,则必须将选项“--unsecurity registry”添加到客户端的Docker守护进程中,然后重新启动Docker服务。有关详细信息, see Connecting to Harbor via HTTP 如下.
带Notary安装
要使用Notary服务安装Harbor,请在运行install.sh时添加--with-nitificial参数:
sudo ./install.sh --with-notary
要使用Notary进行安装,必须将Harbor配置为使用HTTPS。
有关Notary和Docker内容信托的更多信息, 查看 Content Trust在Docker文档中。
带Trivy安装
要使用Trivy服务安装Harbor,请在运行install.sh时添加--with-trivy参数:
sudo ./install.sh --with-trivy
有关Trivy的更多信息,请参阅 Trivy documentation. 有关如何在网络代理环境中使用Trivy的更多信息,请参阅 Configure custom Certification Authorities for trivy
带Trivy和Notary安装
如果要同时安装公证器和Trivy,请在同一命令中指定所有参数:
sudo ./install.sh --with-notary --with-trivy
通过HTTP连接到Harbor
重要的: 如果Harbor的安装使用HTTP而不是HTTPS,则必须将选项--unsecurity registry添加到客户端的Docker守护进程中。默认情况下,守护程序文件位于/etc/docker/daemon.json。
例如,将以下内容添加到daemon.json文件中:
{
"insecure-registries" : ["myregistrydomain.com:5000", "0.0.0.0"]
}
更新daemon.json后,必须重新启动Docker引擎和Harbor。
-
重新启动Docker引擎。
systemctl restart docker -
停止Harbor。
docker-compose down -v -
重启Harbor。
docker-compose up -d