参考文档 Harbor 配置文件说明
Harbor 配置文件
Harbor 的配置文件中配置参数由必须参数以及可选参数两部分组成,您可以在 harbor.yml
文件中为 Harbor 设置系统级别参数。这些参数在您运行install.sh
脚本以安装或重新配置 Harbor 时生效。
必须参数
Harbor 不附带任何证书。在1.9.x 及以下版本中,默认情况下,Harbor 使用 HTTP 服务 registry 请求。这仅在有空隙的测试或开发环境中可接受。在生产环境中,请始终使用 HTTPS。如果您启用 Content Trust with Notary
来正确签名所有 image,则必须使用 HTTPS。
您可以使用由受信任的第三方CA签名的证书,也可以使用自签名证书。有关如何创建CA以及如何使用CA签署服务器证书和客户端证书的信息,请参阅 使用HTTPS访问配置Harbor。
下表列出了部署 Harbor 时必须设置的参数。默认情况下,harbor.yml 文件中的所有必需参数均未注释。可选参数用#注释。
参数 | 子参数 | 说明和附加参数 |
---|---|---|
hostname | None | 指定要在其上部署 Harbor 的目标主机IP地址或标准域名(FQDN)。这是您访问 Harbor Portal 和 registry server 的地址。 例如:192.168.1.10 或 reg.yourdomain.com。注册表服务必须可供外部客户端访问,因此请勿将 localhost,127.0.0.1 或 0.0.0.0 指定为 hostname。 |
http | 不要在生产环境中使用HTTP。仅在没有外部互联网连接的空白测试或开发环境中,才可以使用HTTP。 在没有空隙的环境中使用HTTP会使您遭受中间人攻击。 | |
port | 用于 Harbor 门户和 Docker 命令的 HTTP 的端口号。默认值为80。 | |
https | 使用HTTPS访问 Harbor Portal 和令牌/通知服务。始终在生产环境和没有空隙的环境中使用 HTTPS。 | |
port | 用于Harbor门户和Docker命令的HTTPS的端口号。默认值为443。 | |
certificate | SSL证书的路径。 | |
private_key | SSL密钥的路径 | |
internal_tls | 使用 HTTPS 在 Harbor 组件之间进行通信 | |
enabled | 将此标志设置为 true 表示启用内部 tls | |
dir | 包含内部证书和密钥的目录的路径 | |
harbor_admin_password | None | 为 Harbor 系统管理员设置一个初始密码。仅在首次启动登录 Harbor 时使用此密码。 在后续登录时,此设置将被忽略,并且管理员密码在 Harbor Portal 中设置。 默认的用户名和密码为 `admin` 和 `Harbor12345` 。 |
database | 使用本地 PostgreSQL数据库。您可以选择配置外部数据库,在这种情况下,可以禁用此选项。 | |
password | 设置本地数据库的 root 密码。您必须为生产部署更改此密码。 | |
max_idle_conns | 空闲连接池中的最大连接数。如果设置为<= 0,则不保留空闲连接。 默认值为50。如果未配置,则值为2。 | |
max_open_conns | 与数据库的最大打开连接数。如果<= 0,则打开的连接数没有限制。到Harbor数据库的最大连接数的默认值为100。 如果未配置,则值为0。 | |
data_volume | None | 目标主机上用于存储 Harbor 数据的位置。即使删除或重新创建 Harbor 的容器,此数据也保持不变。 您可以选择配置外部存储,在这种情况下,请禁用此选项并启用 storage_service。默认值为 /data。 |
clair | updaters_interval | 设置 Clair 更新的时间间隔(以小时为单位)。设置为0以禁用更新。默认值为12小时。 |
trivy | 配置Trivy扫描仪 | |
ignore_unfixed | 将标志设置为 true 以仅显示固定的漏洞。默认值为 false | |
skip_update | 您可能想要在测试或 CI/CD 环境中启用此标志,以避免 GitHub 速率限制问题。 如果启用了该标志,则必须手动下载 `trivy.db` 文件并将其安装在容器中的 `/home/scanner/.cache/trivy/db/trivy.db` 路径中。默认值为false | |
insecure | 将标志设置为 true 以跳过验证 registry 证书。默认值为 false | |
github_token | 设置 GitHub 访问令牌以下载 Trivy DB。 Trivy DB由 Trivy 从 GitHub 发布页面下载。 从GitHub进行的匿名下载每小时受到60个请求的限制。通常,这样的速率限制对于生产操作是足够的。 如果由于某种原因还不够,您可以通过指定 GitHub 访问令牌将速率限制提高到每小时5000个请求。 有关GitHub速率限制的更多详细信息,请参阅https://developer.github.com/v3/#rate-limiting。 您可以按照 https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line 中的说明创建GitHub令牌 | |
jobservice | max_job_workers | 作业服务中最大复制 worker 数。对于每个 image 复制作业,worker 会将存储库的所有 tags 同步到远程目标。 增加此数目将允许系统中进行更多并发复制作业。但是,由于每个 worker 都会消耗一定数量的网络/CPU/IO资源, 因此请根据主机的硬件资源来设置此属性的值。预设值为10。 |
notification | webhook_job_max_retry | 设置Web挂钩作业的最大重试次数。预设值为10。 |
chart | absolute_url | 设置为 enabled 时 Chart 使用绝对URL。设置为 disabled 时 Chart 使用相对URL。 |
log | 配置日志记录。 Harbor 使用 `rsyslog` 来收集每个容器的日志。 | |
level | 将日志记录级别设置为 debug,info,warning,error 或 fatal。默认值为 info。 | |
local | 设置日志保留参数:
|
|
external_endpoint | 启用此选项可将日志转发到syslog服务器。
|
|
proxy | 配置 Clair,jobservice 和 Harbor 使用的代理。如果不需要代理,请留空。 | |
http_proxy | 配置 HTTP 代理,例如 http://my.proxy.com:3128。 | |
https_proxy | 配置 HTTPS 代理,例如 http://my.proxy.com:3128。 | |
no_proxy | 配置何时不使用代理,例如 127.0.0.1,localhost,core,registry。 |
可选参数
下表列出了其他可选参数,您可以设置这些参数,以配置超出最低必需设置的 Harbo 部署。要启用设置,必须通过删除前面的#字符,以在 harbor.yml 中取消注释。
参数 | 子参数 | 说明和附加参数 |
---|---|---|
external_url | None | 启用此选项以使用外部代理。启用后,将不再使用主机名。 |
storage_service | 默认情况下,Harbor将 images 和 chart 存储在本地文件系统上。在生产环境中, 您可能要使用另一个存储后端而不是本地文件系统。 下面列出的参数是注册表的配置。有关如何配置其他后端的更多信息,请参见下面的“配置存储后端”。 | |
ca_bundle | 定制根CA证书的路径,该路径已注入 registry 和 chart repository 容器的信任存储中。 如果内部存储使用自签名证书,通常需要这样做。 | |
filesystem | 默认为文件系统,但是您可以设置 azure,gcs,s3,swift和oss。 有关如何配置其他后端的信息,请参阅下面的配置存储后端。 设置 maxthreads 以将线程数限制为外部提供程序。默认值为100。 | |
redirect | 当您想禁用 registry 重定向时将 disable 设置为true | |
external_database | 如果禁用本地数据库选项,请配置外部数据库设置。当前,Harbor仅支持PostgreSQL数据库。 您必须为 Harbor core,Clair,Notary server 和 Notary signer 创建四个数据库。 这些表格在Harbor启动时自动生成。 | |
harbor | 配置用于 harbor 数据的外部数据库。
|
|
clair | 配置用于 Clair 数据的外部数据库。
| |
notary_signer | 配置用于 Notary signer 数据的外部数据库。
| |
notary_server | 配置用于 Notary server 数据的外部数据库。
| |
external_redis | 配置外部Redis实例 | |
host | 外部 Redis 实例的 redis_host:redis_port。如果使用的是Sentinel模式, 则此部分应为 host_sentinel1:port_sentinel1,host_sentinel2:port_sentinel2 | |
sentinel_master_set | 仅在使用Sentinel模式时进行设置 | |
password | 连接外部Redis实例的密码。 | |
registry_db_index | Harbor registry的数据库索引。 | |
jobservice_db_index | Jobservice的数据库索引。 | |
chartmuseum_db_index | Chart museum 的数据库索引。 | |
clair_db_index | Clair 适配器的数据库索引。 | |
trivy_db_index | Trivy 适配器的数据库索引。 |
注意: harbour.yml
文件包含用于配置UAA CA证书的选项。不建议使用此身份验证模式,也没有记录此模式。
配置存储后端
默认情况下,Harbor 将本地存储用于 registry,但是您可以选择配置 storage_service 设置,以便 Harbor 使用外部存储。
有关如何为不同的存储提供程序配置 registry 的存储后端的信息,请参阅Docker文档中的 注册表配置参考。例如,如果您使用Openstack Swift作为存储后端,则参数可能类似于以下内容:
1 | storage_service: |