目录
前言
网络上对Harbor相关的资料真是少之又少,基本上都是教怎么安装,对于Harbor的原理讲解比较少,今天更新一篇 harbor.yml 配置的文章,有图有真相,看看学起来~
各位小伙伴们如果有不清楚地方,评论区欢迎讨论😏
备注:目录有每个参数索引,方便查阅~
参数详解
下面跟着小涛,手把手从头认识每个参数配置,再也不用担心不认识Habor配置了😉
hostname
配置Harbor服务的网络访问地址;可将其配置当前环境IP地址和主机域名;
注意:不要配置成 127.0.0.1
或 localhost
,否则除本机外Harbor无法被别的节点访问
HTTP和HTTPS
配置Harbor的网络访问协议,默认是https;
注意:如果安装Notary组件,必须将Harbor网络访问协议配置为HTTPS
配置HTTPS时需要提供SSL/TLS证书,并配置给 certificate
和 private_key
选项(可自签证书)
bash
port: 网络端口号,默认443
certificate: SSL/TLS证书文件的本机位置
private_key: 私钥文件的本机位置
附:HTTP协议,把HTTPS配置注释即可,如下所示
yaml
#https:
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /data/harbor/cert/hub.dbatao.com.crt
# private_key: /data/harbor/cert/hub.dbatao.com.key
internal_tls
配置Harbor各个模块/组件的TLS通信,默认情况下,Harbor各个组件(harbor-core、harbor-jobservice、harbor-portal、registry、registryctl 等)之间通信都基于HTTP。
但为了安全,生成环境建议开启TLS通信(若需开启,去掉配置文件的注释部分即可)
yaml
# Uncomment following will enable tls communication between all harbor components
internal_tls:
# set enabled to true means internal tls is enabled
enabled: true #表示TLS是开启状态
# put your cert and key files on dir
dir: /etc/harbor/tls/internal #存放各组件证书+私钥文件路径
harbor_admin_password
配置Harbor管理员的密码,默认值:Harbor12345
注意:此项用于管理员登陆Harbor,仅在第一次启动有效,启动后更改不再生效。
database
配置Harbor内置数据库(PG数据库)
yaml
password: #数据库管理员密码,默认为root123
max_idle_conns: #Harbor组件连接数据库的最大空闲连接数
max_open_conns: #Harbor组件连接数据库的最大连接数,为小于0的整数时,连接数无限制
data_volume
配置Harbor的本地数据存储,默认为/data
目录,存放的数据有:Artifact文件、数据库数据库、缓存数据等
storage_service
配置外置存储。Harbor默认使用本地存储,若需外部存储,则去掉注释部分
yaml
ca_bundle: #CA的存放路径,Harbor将该路径下的文件注入trust store中(log、database、reids、notary除外)
外置存储类型: #包含filesystem、azure、s3、swift、oss(默认:filesystem)
提示:使用外部存储,建议查看 云厂商官网文档
这里我用了s3
的方法存储
clair
配置镜像扫描工具Clair;
updaters_interval
是Clair抓取CVE数据的时间间隔(单位:小时)
注意:设置为0时,关闭数据抓取
trivy
配置镜像扫描工具 Trivy
bash
ignore_unfixed: #是否忽略无修复的漏洞,默认为false
skip_update: #是否关闭Trivy从GitHub数据源下载数据的功能,默认值false
insecure: #是否忽略Registry证书验证,默认值false
github_token: #Trivy从数据源GitHub下载数据访问的Token
jobservice
配置jobservice
组件,功能:执行异步任务
max_job_workers
为最大job的执行单元数,默认值:10
notification
配置事件通知
webhook_job_max_retry
:为事件通知失败的最大重试次数,默认值也是10
chart
配置ChartMuseum组件
absolute_url
:使ChartMuseum组件时,客户端获取Chart的index.yaml中包含的url是否为绝对路径
若不配置该项,返回相对路径
log
配置日志
yaml
lever: #日志级别
local: #本地日志配置
rotate_count: #日志文件在删除前的最大轮询次数,默认值50【设置为0时将不启用轮回】
rotate_size: #日志文件轮询值,默认值200MB【日志文件大小超过设置的阈值后进行轮转】
location: #日志文件的本地存储路径
external_endpoint:
protocol: #外置日志的传输协议,支持UDP和TCP,默认为TCP
host: #外置日志服务的网络地址
port: #外置日志服务的网络端口
_version
用于migrator检测.cfg文件的版本,勿修改!
external_database
外置数据库配置(Harbor 2.0.0 版本后只支持PG)
注意:外置数据库需要额外自己创建
yaml
harbor: #Harbor的数据库配置
host: #数据库的连接地址
port: #数据库端口号
db_name: #数据库的name
username: #连接数据库的用户名
password: #密码
ssl_mode: #安全模式
max_idle_conns: #组件连接数据库的最大空闲连接数
max_open_conns: #组件连接数据库的最大连接数据,小于0的整数时,连接无限制
clair: #clair数据库配置
host: #和上面相同
port:
db_name:
username:
password:
ssl_mode:
notary_signer: #Notary Signer的数据库配置
host: #和上面相同
port:
db_name:
username:
password:
ssl_mode:
notary_server: #Notary Server的数据库配置
host: #和上面相同
port:
db_name:
username:
password:
ssl_mode:
external_redis
外置Redis数据库配置
注意:数据库索引值不可以
被设置为0,因为其被Harbor的Core组件单独占用
yaml
host: #外置Redis的连接地址
port: #端口
password: #密码
registry_db_index: #Registry组件的数据库索引值
jobservice_db_index: #JobService组件的数据索引值
chartmuseum_db_index: #ChartMuseum组件的数据索引值
clair_db_index: #Clair组件的数据索引值
trivy_db_index: #Trivy组件的数据索引值
idle_timeout_seconds: #空闲连接时间,设置为0时,空闲的连接不好被关闭
uaa
配置UAA
ca_file
: UAA服务自签名证书的路径
proxy
配置反向代理;Harbor在内网环境运行时,可使用反向代理访问外网;
注意:代理配置不影响Harbor各个组件之间通信
yaml
proxy: #网络代理服务地址
no_proxy: #不使用网络代理服务的域名
components: #默认代理服务配置应用在 Core、JobService、Clair、Trivy的网络中访问,如果想关闭任一组件的代理服务,删除该组件name即可
#注意:如需要Artifact复制功能应用网络代理,core、JobService必须在该列表中
欢迎评论区讨论~
写作不易,大家点赞、收藏、关注
一波 (。・∀・)ノ゙嗨