Harbor系列之12:对接外部redis和pg数据库的harbor容器化部署

对接外部redis和pg数据库的harbor容器化部署

harbor部署到docker环境中,安装时除了可以自带pg数据库和redis缓存之外,也可以对接外部的pg数据库和redis,在harbor部署到生产环境中和高可用落地方案中可以作为考虑的方案。

本文部署Harbor v2.11.0版本,采用离线部署安装包。关于harbor与redis、pg数据库的配套没有查到官方的兼容性列表,如下为v2.11.0版本的配套版本:

# pg版本
[root@harbor ~]# docker exec -it harbor-db sh
sh-5.2$ postgres --version
postgres (PostgreSQL) 15.7

# redis版本
[root@harbor ~]# docker exec -it redis sh
sh-5.2$ redis-server --version
Redis server v=7.2.4 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=d9d89acc9c7644cd

实际部署中尽可能满足上述配套版本,本文测试对接使用redis6.0 + pg 13.4。同时测试使用pg 11.6版本时,在部署harbor后数据库初始化时存在问题,可能是pg版本不兼容导致的。

1. 准备工作

  1. 下载 Harbor 离线安装包

Harbor GitHub releases 页面下载离线安装包,例如 harbor-offline-installer-v2.11.0.tgz

  1. 安装 Docker 和 Docker Compose

确保目标机器上已经安装了 Docker 和 Docker Compose。

在 Linux 主机上:需要 Docker 20.10.10-ce 及以上版本和 Docker Compose 1.18.0 及以上版本。

  1. 准备外部对接的pg和redis

本文通过云平台下发pg数据库和redis缓存进行对接。

pg数据库选用PostgreSQL 13.4版本,采用高可用部署,部署后创建用户harboradmin,密码:Admin@123,访问地址:192.168.1.49:5432。并在pg上创建harbor使用的数据库:harbor_db

redis选用Redis 6.0版本,采用单机版本,密码:Admin@123,访问地址:192.168.1.44:6379

2. 安装部署

harbor-offline-installer-v2.11.0.tgz 上传到待部署机器并解压:

[root@k8s ~]# tar xf harbor-offline-installer-v2.11.0.tgz
[root@k8s ~]# cd harbor
[root@k8s harbor]# ls
common.sh  harbor.v2.11.0.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

# 创建harbor数据目录,生产环境中可以配置单独的磁盘进行挂载。
mkdir -p /data

配置 Harbor 部署参数:

[root@k8s harbor]# cp harbor.yml.tmpl harbor.yml
[root@k8s harbor]# vi harbor.yml

编辑 harbor.yml 文件,根据实际需求进行配置:

# 修改配置文件,启用对接外部的redis和pg
[root@i-dUoli4JfO harbor]# vim harbor.yml
[root@i-dUoli4JfO harbor]# grep -v "^\s*#\|^\s*$" harbor.yml
hostname: 192.168.1.20    # 机器域名或者ip
http
### 配置 Harbor 集群以连接到外部 Redis PostgreSQL 为了使 Harbor 正确配置并链接至外部Redis PostgreSQL 数据库,需遵循特定设置指南。 #### 修改 `harbor.yml` 文件 在部署前,编辑 `harbor.yml` 文件来指定外部数据库服务的信息: 对于 **PostgreSQL** 的配置如下所示: ```yaml database: # 设置为 true 表明使用外部 PostgreSQL 实例 external: true host: <your_postgresql_host> # 外部 PostgreSQL 主机地址 port: 5432 # PostgreSQL 端口,默认为 5432 db_name: registry # 数据库名称 username: postgres # 用户名 password: "<password>" # 密码 ``` 针对 **Redis** 连接,则应调整相应字段: ```yaml redis: # 使用外部 Redis 实例标记 external: true host: <your_redis_host> # 外部 Redis 主机地址 port: 6379 # Redis 默认端口号 password: "" # 如果有密码则填写, 否则留空字符串"" ``` 上述修改允许 Harbor 将其内部组件与预先存在的、由其他工具或服务管理的数据存储相集成[^1]。 #### 更新 Docker Compose 文件 如果采用 Docker Compose 来编排 Harbor 及关联的服务,在 `docker-compose.yml` 中添加必要的 `external_links` 参数以便于访问非 Compose 控制下的容器实例。例如: ```yaml version: '3' services: ... core: image: goharbor/harbor-core:v2.8.0 environment: - REDIS_HOST=<your_redis_host> - POSTGRESQL_HOST=<your_postgresql_host> external_links: - redis_1 # 假设这是外部 Redis 容器的名字 - project_db_1:mysql # 对应 PostgreSQL 容器及其别名 ... ``` 此操作确保即使这些资源不在同一个 Docker Compose 工程内也能被正确识别利用。 完成以上更改之后,继续按照官方文档指示执行后续步骤即可成功搭建基于自定义后端存储方案的 Harbor 平台[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值