配置 Harbor YML 文件

您可以在安装程序包中包含的 harbor.yml 文件中设置 Harbor 的系统级参数。当您运行 install.sh 脚本来安装或重新配置 Harbor 时,这些参数会生效。

在初始部署之后以及启动 Harbor 之后,您可以在 Harbor Web Portal 中执行其他配置。

必需参数

下表列出了部署 Harbor 时必须设置的参数。默认情况下,所有必需参数在 harbor.yml 文件中都是未注释的。可选参数用 # 注释。您不一定需要更改提供的默认必需参数值,但这些参数必须保持未注释状态。至少,您必须更新 hostname 参数。

重要提示:Harbor 不附带任何证书。在 1.9.x 及更早版本中,默认情况下,Harbor 使用 HTTP 来提供 registry 请求。这仅在气隙测试或开发环境中是可以接受的。在生产环境中,始终使用 HTTPS。

您可以使用受信任的第三方 CA 签名的证书,也可以使用自签名证书。有关如何创建 CA,以及如何使用 CA 签署服务器证书和客户端证书的信息,请参阅 配置 Harbor 的 HTTPS 访问

Harbor 部署的必需参数
参数 子参数 描述和附加参数
hostname 指定要部署 Harbor 的目标主机的 IP 地址或完全限定域名 (FQDN)。这是您访问 Harbor Portal 和 registry 服务的地址。例如,192.168.1.10reg.yourdomain.com。registry 服务必须可供外部客户端访问,因此不要将 localhost127.0.0.10.0.0.0 指定为主机名。
http   请勿在生产环境中使用 HTTP。仅在没有连接到外部互联网的气隙测试或开发环境中,使用 HTTP 才是可以接受的。在非气隙环境中使用 HTTP 会使您容易受到中间人攻击。
  port HTTP 的端口号,用于 Harbor portal 和 Docker 命令。默认值为 80。
https   使用 HTTPS 访问 Harbor Portal 和令牌/通知服务。始终在生产环境和非气隙环境中使用 HTTPS。
  port HTTPS 的端口号,用于 Harbor portal 和 Docker 命令。默认值为 443。
  certificate SSL 证书的路径。
  private_key SSL 密钥的路径。
internal_tls   使用 HTTPS 在 Harbor 组件之间进行通信
  enabled 将此标志设置为 true 表示启用内部 tls
  dir 包含内部证书和密钥的目录的路径
harbor_admin_password 为 Harbor 系统管理员设置初始密码。此密码仅在 Harbor 首次启动时使用。在后续登录时,将忽略此设置,管理员密码在 Harbor Portal 中设置。默认用户名和密码为 adminHarbor12345
database   使用本地 PostgreSQL 数据库。您可以选择配置外部数据库,在这种情况下,您可以停用此选项。
  password 设置本地数据库的 root 密码。对于生产部署,您必须更改此密码。
  max_idle_conns 空闲连接池中的最大连接数。如果 <=0,则不保留空闲连接。
  max_open_conns 到数据库的最大打开连接数。如果 <= 0,则对打开连接的数量没有限制。
  conn_max_lifetime 连接可以重用的最长时间。如果 <= 0,则连接不会因连接的寿命而关闭。
  conn_max_idle_time 连接可以空闲的最长时间。如果 <= 0,则连接不会因连接的空闲时间而关闭。
data_volume 目标主机上存储 Harbor 数据的location。即使 Harbor 的容器被删除和/或重新创建,此数据也保持不变。您可以选择配置外部存储,在这种情况下,停用此选项并启用 storage_service。默认值为 /data
trivy   配置 Trivy 扫描器。
  ignore_unfixed 将此标志设置为 true 以仅显示已修复的漏洞。默认值为 false
  security_check 要检测的安全问题(以逗号分隔的列表)。可能的值为 vulnconfigsecret。默认为 vuln
  skip_update 您可能需要在测试或 CI/CD 环境中启用此标志,以避免 GitHub 速率限制问题。如果启用该标志,您必须手动下载 trivy-offline.tar.gz 存档,解压缩 trivy.dbmetadata.json 文件,并将它们挂载到容器中的 /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 数。对于每个镜像复制作业,worker 将仓库的所有标签同步到远程目标。增加此数字允许系统中进行更多并发复制作业。但是,由于每个 worker 都会消耗一定的网络/CPU/IO 资源,因此请根据主机的硬件资源设置此属性的值。默认值为 10。
notification webhook_job_max_retry 设置 Webhook 作业的最大重试次数。默认值为 10。
log   配置日志记录。Harbor 使用 `rsyslog` 收集每个容器的日志。
  level 将日志记录级别设置为 debuginfowarningerrorfatal。默认值为 info
  local 设置日志保留参数
  • rotate_count:日志文件在被删除之前轮换 rotate_count 次。如果计数为 0,则删除旧版本而不是轮换。默认值为 50。
  • rotate_size:仅当日志文件增长到大于 rotate_size 字节时才轮换。使用 k 表示千字节,M 表示兆字节,G 表示千兆字节。100100k100M100G 都是有效值。默认值为 200M。
  • location:设置存储日志的目录。默认值为 /var/log/harbor
  external_endpoint 启用此选项可将日志转发到 syslog 服务器。
  • protocol:syslog 服务器的传输协议。默认为 TCP。
  • host:syslog 服务器的 URL。
  • port:syslog 服务器监听的端口
proxy   配置供 trivy-adapter、复制作业服务和 Harbor 使用的代理。如果不需要代理,请留空。某些代理具有白名单设置,如果启用了 Trivy,则需要将以下 URL 添加到代理服务器白名单:github.comgithub-releases.githubusercontent.com*.s3.amazonaws.com.
  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
cache   为您的 Harbor 实例配置缓存层。启用后,Harbor 将缓存一些 Harbor 资源(例如,工件、项目或项目元数据),从而减少重复请求相同 Harbor 资源所花费的时间和资源。强烈建议您在高并发拉取请求率的 Harbor 实例上启用此功能,以提高 Harbor 的整体性能。有关缓存层实现和性能改进的更多详细信息,请参阅 缓存层 wiki 页面
  enabled 默认为 false,设置为 true 以启用 Harbor 的缓存层。
  expire_hours 配置缓存过期时间限制(以小时为单位)。默认值为 24。

可选参数

下表列出了您可以设置的其他可选参数,以在最低限度的必需设置之外配置您的 Harbor 部署。要启用设置,您必须通过删除前导 # 字符来取消注释 harbor.yml 中的设置。

Harbor 的可选参数
参数 子参数 描述和附加参数
external_url 启用此选项可使用外部代理。启用后,将不再使用主机名。
storage_service   默认情况下,Harbor 将镜像和图表存储在本地文件系统中。在生产环境中,您可能希望使用另一个存储后端而不是本地文件系统。下面列出的参数是 registry 的配置。有关如何配置不同后端的更多信息,请参阅下面的 *配置存储后端*。
  ca_bundle 自定义根 CA 证书的路径,该证书被注入到 registry 和 chart repository 容器的信任存储中。如果内部存储使用自签名证书,则通常需要此证书。
  filesystem 默认值为 filesystem,但您可以设置为 azuregcss3swiftoss。有关如何配置其他后端的信息,请参阅下面的 配置存储后端。设置 maxthreads 以限制到外部提供商的线程数。默认值为 100。
  redirect 当您要停用 registry 重定向时,将 deactivate 设置为 true
external_database   如果您停用本地数据库选项,请配置外部数据库设置。目前,Harbor 仅支持 PostgreSQL 数据库。您必须为 Harbor core 创建一个数据库。表在 Harbor 启动时自动生成。
  harbor

为 Harbor 数据配置外部数据库。

  • host:Harbor 数据库的主机名。
  • port:数据库端口。
  • db_name:数据库名称。
  • username:连接到 core Harbor 数据库的用户名。
  • password:您在 username 中设置的帐户的密码。
  • ssl_mode:启用 SSL 模式。
  • max_idle_conns:空闲连接池中的最大连接数。如果 <=0,则不保留空闲连接。默认值为 2。
  • max_open_conns:到数据库的最大打开连接数。如果 <= 0,则对打开连接的数量没有限制。默认值为 0。
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 的数据库索引。
  trivy_db_index Trivy adapter 的数据库索引。
metric   配置将 Harbor 实例指标暴露到指定的端口和路径
  enabled 通过将其设置为 true 来启用在您的 Harbor 实例上暴露指标。默认为 false
  port 指标暴露的端口。默认值为 9090
  path 指标暴露的路径。默认值为 /metrics
trace   配置暴露分布式跟踪数据
  enabled 通过将其设置为 true 来启用在您的 Harbor 实例上暴露跟踪。默认为 false
  sample_rate 设置跟踪的采样率。例如,如果您要采样 100% 的跟踪数据,请将 sample_rate 设置为 1;如果您要采样 50% 的跟踪数据,请设置为 0.5,依此类推
  namespace 用于区分不同 Harbor 服务的命名空间,它将设置为键为 service.namespace 的属性
  attributes attributes 是一个键值字典,包含用于初始化跟踪提供程序的用户定义的自定义属性,所有这些属性都将添加到跟踪数据中
  jaeger
  • endpoint:端点的 url(例如 http://127.0.0.1:14268/api/traces)。设置端点表示通过 http 导出到 jaeger 收集器。
  • username::用于连接端点的用户名。如果不需要,则留空。
  • password::用于连接端点的密码。如果不需要,则留空。
  • agent_host:jaeger agent 的主机名。设置 agent_host 表示通过 udp 将数据导出到 jaeger agent。
  • agent_port::jaeger agent 的端口名。
  otel
  • endpoint:与 otel 兼容的后端的 hostname 和 port(例如 127.0.0.1:4318)。
  • url_path::端点的 url 路径(例如 127.0.0.1:4318
  • compression::是否启用数据压缩
  • insecure:忽略 otel 后端的证书验证
  • timeout::数据传输的超时时间
harbor.yml 文件包含配置 UAA CA 证书的选项。不建议使用此身份验证模式,并且未记录在案。

配置存储后端

默认情况下,Harbor 使用本地存储作为 registry,但您可以选择配置 storage_service 设置,以便 Harbor 使用外部存储。有关如何为不同的存储提供商配置 registry 的存储后端的信息,请参阅 Distribution Registry(以前称为 Docker Registry)文档中的 Distribution Configuration Reference。例如,如果您使用 Openstack Swift 作为您的存储后端,则参数可能类似于以下内容

storage_service:
  ca_bundle:
  swift:
    username: admin
    password: ADMIN_PASS
    authurl: http://keystone_addr:35357/v3/auth
    tenant: admin
    domain: default
    region: regionOne
    container: docker_images
  redirect:
    disabled: false

下一步做什么

要安装 Harbor,请运行安装程序脚本