Harbor配置优化,配置文件深度解析!

2022年05月12日 阅读数:2
这篇文章主要向大家介绍Harbor配置优化,配置文件深度解析!,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

📢📢📢📢📢📢css

你们好!我是​李大白,本篇文章属于《Haror大白话》系列。更多Harbor精品文章可看我主页《harbor大白话》。git


目录github

  • 前言
  • 一、根据模板文件建立harbor配置文件
  • 二、打开harbor配置文件
  • 服务访问地址
  • 服务访问方式(端口)
  • 是否启用Harbor组件之间的tls通讯
  • 是否启用外部代理
  • 配置管理员密码
  • 数据库配置
  • 是否启用外部存储
  • 扫描器配置
  • job服务的最大数量
  • webhook配置
  • Chart配置
  • 日志配置
  • 是否启用外部系统日志
  • Harbor版本号
  • 是否启用外部数据库
  • 是否启用外部redis缓存服务器
  • UAA身份验证
  • 全局代理
  • 启用指标采集组件



前言

是部署harbor的时候,须要对配置文件作一些修改,以此来适配咱们的业务环境。web

Harbor的安装包并不直接提供harbor的配置文件,而是须要咱们本身去建立配置文件redis

那如何去建立配置文件呢?harbor官方也提供了一个配置文件的模板,咱们能够将模板文件复制过来,再修改下就能够制做成harbor的配置文件了!sql

本篇文章仅讲配置文件的内容,Harbor其它知识点请参考楼主主页文章。docker


一、根据模板文件建立harbor配置文件

在harbor安装包解压后,在目录下的​harbor.yml.tmpl文件是配置文件模板,将其复制为​harbor.yml​(harbor配置文件)数据库

说明:本文以2.3.1版本为演示,其它版本能够参考。swift

[root@Over app]# cd harbor/
[root@Over harbor]# cp harbor.yml.tmpl harbor.yml

二、打开harbor配置文件

使用vi/vim打开刚才建立的配置文件harbor.yml查看配置文件详细状况。vim

[root@Over harbor]# vim harbor.yml


服务访问地址​

hostname: 192.168.2.250

访问管理UI和注册表服务的IP地址或主机名。不能使用localhost或127.0.0.1,由于Harbor须要由外部客户端访问。值填写Harbor服务的主机IP或主机名(域名访问方式)。


服务访问方式(端口)​

http:
port: 80

https:
port: 443 # https安全访问端口,默认443
certificate: /etc/docker/CA/harbor.pem # 访问harbor的证书
private_key: /etc/docker/CA/harbor-key.pem # 访问harbor的私钥

http的端口,默认为80。若是启用https,此端口将重定向到https端口。模板文件模式禁用https安全访问方式(适合初学者或测试环境的配置)。生产环境须要将https部分取消注释,以增长Harbor的安全性。

启用https安全端口,还须要手动配置证书。官方是以openssl工具建立证书。

https证书证书配置部分参考楼主文章:​​企业内网如何搭建安全的Harbor服务?(超详细)​​

Harbor配置优化,配置文件深度解析!_云原生


是否启用Harbor组件之间的tls通讯​

默认为禁用状态。

# internal_tls:   # 是否启用全部Harbor组件之间的tls通讯
# enabled: true #enabled设置为true表示内部tls已启用
# dir: /etc/harbor/tls/internal #证书和密钥文件的存放目录


是否启用外部代理​

若是启用,那么主机名将再也不使用,默认禁用,值为外部代理的地址。

# external_url: https://reg.mydomain.com:8433


配置管理员密码​

管理员admin的初始密码,默认为Harbor12345,只在第一次安装harbor时起做用,安装时不须要修改,登陆Harbor UI管理界面后,为保证密码的安全性,强烈建议修改

harbor_admin_password: Harbor12345


​数据库配置​​

harbor数据库配置部分,harbor使用​postgresql​做为数据库。

database:
password: root123
max_idle_conns: 100
max_open_conns: 900
data_volume: /app/harbor/data

password:  harbor数据库root用户的密码,生产环境建议修改;

max_idle_conns:   空闲链接池中的最大链接数。若是小于等于0,则不保留空闲链接。

max_open_conns:  打开到数据库的最大链接数。若是小于等于0,则对打开的链接数没有限制。

data_volume:   数据存储目录,harbor中的每一个组件的数据都存储在该指定路径下的子目录中。


是否启用外部存储​

     若是须要使用外部存储,则将该部分的注释去掉,生产环境建议使用外部存储,

# storage_service:
# ca_bundle
# filesystem:
# maxthreads: 100 # 最大线程数
# redirect: # 是否启用重定向
# disabled: false

ca_bundle:   自定义根ca证书的路径,该证书将被注入信任库。

filesystem:   存储后端,默认为文件系统,选项包括文件系统、azure、gcs、s三、swift、NFS和oss存储。本专栏后面会出后端存储的文章。


扫描器配置

是否启用Trivy扫描器来扫描镜像的漏洞,默认未启用。

trivy:
ignore_unfixed: true # 是否显示已修复的漏洞
skip_update: false # 是否启用从github上下载的Trivy数据
insecure: false # 是否跳过证书验证
# github_token: xxx # githubtoken

扫描器的详细使用见本专栏《Harbor镜像仓库漏洞扫描_如何检测你的镜像是否安全?》一文。


job服务的最大数量

jobservice:
max_job_workers: 10


webhook配置

默认启用,默认的值为10.

notification:
webhook_job_max_retry: 10 # webhook job的最大重试次数


Chart配置

harbor不只能够存储镜像,还能够存Chart,当helm服务器使用。

chart:
absolute_url: disabled # 是否启用


日志配置

配置harbor的日志信息

log:
level: info # 日志级别
local: # 配置本地存储中的日志
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
  • rotate_count:​日志文件在被删除以前旋转的次数,若是为0,旧版本将被删除而不是旋转。
  • rotate_size:​只有当日志文件的大小大于该值字节时,才会对其进行旋转。若是size后跟k,则假定大小以KB为单位。若是使用M,则大小以兆字节为单位,若是使用G,则大小以千兆字节为单位。那么100、100k、100M和100G。
  •  location: 主机上存储日志的目录。


是否启用外部系统日志

是否将日志放到另外的主机上(默认关闭该功能)

# external_endpoint:
# protocol: tcp
# host: localhost
# port: 5140
  • protocol: 用于将日志传输到外部端点的协议,选项为tcp或udp。
  • host: 外部主机的地址(主机IP)。
  • port:外部主机的端口号。


Harbor版本号

由于配置文件是使用模板文件建立的,须要将版本号修改成安装包同样的版本,不然按照会失败。

_version: 2.3.1


是否启用外部数据库

若是要使用外部数据库,请取消注释该部分来启用。注意与前面的外部数据区分。

目前Harbor仅支持PostgraSQL数据库,须要手动在外部的PostgreSQL上建立harbor、notary_signer、notary_servers三个数据库,Harbor启动时会自动在对应数据库下生成表。配置以下:

# external_database:
# harbor:
# host: harbor_db_host # 数据库主机地址
# port: harbor_db_port # 数据库端口
# db_name: harbor_db_name # 数据库名称
# username: harbor_db_username # 链接该数据库的用户名
# password: harbor_db_password # 链接数据库的密码
# ssl_mode: disable # 启用SSL模式
# max_idle_conns: 2 # 最大空闲链接数
# max_open_conns: 0
# notary_signer:
# host: notary_signer_db_host
# port: notary_signer_db_port
# db_name: notary_signer_db_name
# username: notary_signer_db_username
# password: notary_signer_db_password
# ssl_mode: disable
# notary_server:
# host: notary_server_db_host
# port: notary_server_db_port
# db_name: notary_server_db_name
# username: notary_server_db_username
# password: notary_server_db_password
# ssl_mode: disable


是否启用外部redis缓存服务器


# external_redis:  #  配置外部 Redis 实例。
# host: redis:6379 # redis的地址:端口
# password: # 链接外部redis服务的密码
# #sentinel_master_set:
# registry_db_index: 1
# jobservice_db_index: 2
# chartmuseum_db_index: 3
# trivy_db_index: 5 # Trivy扫描器的数据库索引
# idle_timeout_seconds: 30
  • host: redis: ​ redis的地址:端口;
  • sentinel_master_set:  ​必须设置为支持redis+sentinel,仅在使用 Sentinel 模式时设置;
  • registry_db_index: ​注册表的数据库索引;
  • jobservice_db_index:​  job服务的数据库索引;


UAA身份验证

是否经过自签名证书托管的uaa实例证书的信任,2.4.0开始不支持该配置。

# uaa:
# ca_file: /path/to/ca


全局代理

为组件配置http代理,组件不须要经过http代理相互链接。若是要禁用代理,请从“components”中删除组件,若是要使用代理进行复制,必须启用代理。若是要禁用代理,请将域添加到“no_proxy”字段后面,

proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- trivy


启用指标采集组件

是否启用指标采集组件来收集Harbor相关的指标,默认未启用,该部分配置主要用来监控Harbor的,详细请参考本专栏文章《Prometheus监控Harbor实战(全网首发)》

metric:
enabled: true
port: 9090
path: /metrics



---