港湾配置优化,配置文件深度解析!
????????????????????????
大家好!我是李大白,本篇文章属于《Haror大白话》系列。更多Harbor精品文章可看我主页《harbor大白话》。
目录
- 前言
- 1、根据模板文件创建harbor配置文件
- 2、打开harbor配置文件
- 服务访问地址
- 服务访问方式(端口)
- 是否启用Harbor组件之间的tls通信
- 是否启用外部代理
- 配置管理员密码
- 数据库配置
- 是否启用外部存储
- 扫描器配置
- job服务的最大数量
- webhook配置
- Chart配置
- 日志配置
- 是否启用外部系统日志
- Harbor版本号
- 是否启用外部数据库
- 是否启用外部redis缓存服务器
- UAA身份验证
- 全局代理
- 启用指标采集组件
前言
是部署harbor的时候,需要对配置文件做一些修改,以此来适配我们的业务环境。
Harbor的安装包并不直接提供harbor的配置文件,而是需要我们自己去创建配置文件。
那如何去创建配置文件呢?harbor官方也提供了一个配置文件的模板,我们可以将模板文件复制过来,再修改下就可以制作成harbor的配置文件了!
本篇文章仅讲配置文件的内容,Harbor其它知识点请参考楼主主页文章。
1、根据模板文件创建harbor配置文件
在harbor安装包解压后,在目录下的harbor.yml.tmpl文件是配置文件模板,将其复制为harbor.yml(harbor配置文件)
说明:本文以2.3.1版本为演示,其它版本可以参考。
[root@Over app]# cd harbor/
[root@Over harbor]# cp harbor.yml.tmpl harbor.yml
2、打开harbor配置文件
使用vi/vim打开刚才创建的配置文件harbor.yml查看配置文件详细情况。
[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组件之间的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、s3、swift、NFS和oss存储。本专栏后面会出后端存储的文章。
扫描器配置
是否启用Trivy扫描器来扫描镜像的漏洞,默认未启用。
trivy:
ignore_unfixed: true # 是否显示已修复的漏洞
skip_update: false # 是否启用从github上下载的Trivy数据
insecure: false # 是否跳过证书验证
# github_token: xxx # github的token值
扫描器的详细使用见本专栏《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
推荐阅读
-
分析 Spring 源代码中的配置文件解析、Bean 创建和生命周期
-
全面解析:腾讯 CDB 内核特性与优化实践 - III.TxSQL 深度优化
-
python 模块 ----configpaser(键:值类型配置文件解析器)
-
港湾配置优化,配置文件深度解析!
-
wpa_supplicant.conf 配置文件解析 (I)
-
[腾讯连接腾讯物联网入门学习号】深度解析微信小程序智能配置分发网络原理,安信科ESP-12S直连腾讯物联网开发平台!
-
标题:一文搞定Redis面试,附Redis面试大纲+常见Redis面试题-一、基础篇 快速上手 ①. 什么是redis ②. 为什么使用redis ③. 安装 ④. 基本使用(常见数据结构的命令) Java操作redis ①. Jedis ②. SpringBoot 启动redis的方式 ①. 配置文件 ②. 生产环境启动方案 二、进阶篇 redis实现session共享 redis缓存的使用 ①. 注解式 ②. Spring Cache 数据库和缓存双写一致性问题——穿透 redis实现附近的人 redis实现计数器 redis事务 redis分布式锁的使用 redis集群 redis实现延时队列 redis实现限流 redis实现布隆过滤器 发布订阅 redis优化 三、原理篇 redis单线程为什么性能好 数据类型的底层实现 持久化机制 过期策略 内存淘汰 redis优化 哨兵模
-
深入理解并实践Spring Boot:Logback的详细解析与优化配置指南
-
Logback.xml基础配置深度解析
-
在 PostgreSQL 中玩转遗传查询优化 (GEQO):深度解析与实践指南