Harbor简单搭建以及异常排查的过程与思路

harbor,简单,搭建,以及,异常,排查,过程,思路 · 浏览次数 : 440

小编点评

## Harbor 简单搭建以及异常排查过程与思路前言 **问题:** 我总是能够遇到别人遇不到的问题,导致我浪费了大量时间。为了保证下次不再浪费时间,我决定简单搭建 Harbor 并记录排错过程。 **操作步骤:** 1. **UOS V20 1050E x86 操作系统的安装:** - yum 安装 `docker` 版本 20.09。 - 创建 `docker-compose.yml` 文件: ```yaml version: "3.8" services: docker: image: docker:20.09 restart: unless-stopped ``` - 运行 `docker-compose up -d` 命令启动 Harbor。 2. **下载 Harbor 版本 2.6.1:** - 从 GitHub 上获取 Harbor 版本 2.6.1 的压缩包: ```bash wget -q -O harbor.tar.gz https://github.com/ HarborHQ/Harbor/releases/2.6.1/download/harbor.tar.gz ``` 3. **解压缩 Harbor 压缩包:** - 将压缩包解压缩到 `/usr/bin` 目录下: ```bash tar -zxvf harbor.tar.gz -C /usr/bin ``` 4. **设置 Harbor 管理器的 DNS:** - 修改 `harbor/common/config/proxy` 文件,设置 DNS IP 地址和域名映射: ``` server_name domain.com; server_addr 192.168.1.10; ``` 5. **下载 Harbor 证书:** - 从 Harbor 中下载证书: ```bash docker run --rm harbor/certmanager/certbot certonly --agree-tos ``` 6. **修改 Harbor 管理器的密码:** - 修改 `database/password` 文件中的密码。 7. **执行 `./prepare` 脚本:** - 运行 `./prepare` 脚本进行数据库创建和配置。 8. **执行 `./install.sh` 脚本:** - 运行 `./install.sh` 脚本完成 Harbor 的安装。 9. **查询容器状态:** - 使用 `docker ps | grep -v healthy` 命令查询所有健康容器的 ID。 - 确保容器状态为 `Running`。 **排错步骤:** 1. **nginx 和 registry 启动失败:** - 查看日志发现 `nginx` 和 `registry` 启动失败,错误信息是 `permission denied`。 - 通过修改 `/etc/nginx/nginx.conf` 文件的权限,解决权限问题。 2. **Registry 无法启动:** - 检查 `docker-compose.yml` 文件中的 `registry` 配置是否正确。 - 确保 `docker` 运行正常,可以连接到 `registry` 服务。 3. **数据差异导致安装失败:** - 确保 `docker-compose.yml` 中的 `db_name` 和 `db_password` 配置正确。 - 尝试强制清理第一次安装的数据库密码,然后进行正常安装。 4. **配置文件与数据库不一致:** - 修改 `./prepare` 脚本中 `MYSQL_ROOT_PASSWORD` 的值,确保与 `database/password` 中的密码一致。

正文

Harbor简单搭建以及异常排查的过程与思路


前言

我发现我总是能够遇到别人遇不到的问题.
本来搭建十分钟就可以搭建完成
结果我硬生生的搭建了四十分钟.
为了保证下次不再浪费时间. 
这里加单总结一下遇到的问题

系统准备

这次使用的是UOS V20 1050E x86的操作系统.
简单起见: yum 安装docker
yum install docker -y
发现自带安装的是 18.09的版本.
复制一个docker-compose 到/usr/bin 目录下.
systemctl enable docker
systemctl restart docker

介质准备

从github 上面下载最新版本 harbor
2022.11. 能够下载的版本是 2.6.1
将tar包放到/harbor 目录下 并且解压缩
scp harbor.yml.tmpl  harbor.yml

注意进行修改:
修改域名, 建议直接还是用https 避免不必要的麻烦.
DNS设置IP地址和域名的映射.
然后下载证书放到指定的目录
修改 harbor admin的密码
修改 数据库的密码
执行 ./prepare 的脚本进行创建启动脚本

安装

执行 ./install.sh 执行安装即可. 
速度很快.
安装完之后 进行查询
docker ps |grep -v healthy
如果查不到没有不健康的 容器. 
说明搭建完成正常. 

排错的过程

需要注意几个目录:
harbor的日志存放路径为:
/var/log/harbor
harbor的存储的默认文件是
/data

所以排查问题的思路是 
通过/var/log/harbor/里面的日志来分析.

排错记录1

第一次遇到一个问题是 nginx 和registry启动失败
一开始不知道具体原因
通过查看日志发现是文件权限的问题
错误记录为:

"/etc/nginx/nginx.conf" failed (13: Permission denied)

被逼无奈修改了 /harbor/common/config/proxy 以及 registry
内的文件权限, 修改为 777 的权限,服务就可以正常启动了.

排错记录2

Registry 发现总是无法启动, 错误信息是数据库登录失败
后来想到第一次 install和第二次install 导致的data差异
应该是 harbor 防止多次安装导致数据丢失, 所以没有强制清理
第一次install的数据库密码已经生成
第二次修改了密码再次install就导致配置文件与数据库不一致了.
所以必须按照严格说明进行处理, 先修改好固定住, 再进行处理. 

与Harbor简单搭建以及异常排查的过程与思路相似的内容:

Harbor简单搭建以及异常排查的过程与思路

Harbor简单搭建以及异常排查的过程与思路 前言 我发现我总是能够遇到别人遇不到的问题. 本来搭建十分钟就可以搭建完成 结果我硬生生的搭建了四十分钟. 为了保证下次不再浪费时间. 这里加单总结一下遇到的问题 系统准备 这次使用的是UOS V20 1050E x86的操作系统. 简单起见: yum

配置pod拉取harbor容器镜像仓库私有镜像:secret保存账号密码

配置pod拉取harbor容器镜像仓库私有镜像:secret保存账号密码,Docker-Registry类型的Secret简介,镜像仓库简介,搭建Harbor容器镜像仓库,安装Harbor,创建项目,推送镜像到harbor镜像仓库,使用secret保存harbor账号密码拉取私有仓库的镜像

[转帖]harbor 更改网段(docker-compose)

`https://blog.csdn.net/Darkernote/article/details/119390862` 问题:harbor 安装后网段冲突 docker-compose 一般安装会创建一个默认的网桥ip为172.17,18有和公司网络冲突的可能 解决方案: 一、 查看docker

[转帖]harbor-db restarting问题

现象: 在安装harbor后,启动时发现harbor-db 一直是restarting,/harbor-jobservice,/harbor-core 这两是starting 状态,如下图 解决: 1.查看你的数据库的挂载目录(对应的宿主机目录)是什么,去你的harbor的安装目录,例如我的是usr

[转帖]harbor镜像仓库清理操作

https://www.cnblogs.com/FengGeBlog/p/15517706.html 两年前清理过一次harbor镜像,而现在又要面临清镜像的操作了,笔者目前所在的公司镜像是存放在ceph集群内部的,目前约200T,且该存储池是两副本,那么占用空间是400T左右。真的是相当浪费空间了

Harbor的逻辑备份与学习

Harbor的逻辑备份与学习 背景 一直想处理一下一个有网络冲突的Harbor镜像服务器 但是因为网络层自己水平一直是不是非常自信 加上Harbor容器使用的compose的玩法, 自己不敢直接处理. 所以想着至少能够备份一下Harbor仓库内的镜像. 冷备方式不用说了, 想着处理一下逻辑备份. 正

Harbor镜像仓库的导出与整理之二

Harbor镜像仓库的导出与整理之二 背景 前几天参照大神的blog进行了一下harbor的镜像列表的获取与下载. 当时发现一个很诡异的问题. 实际上镜像仓库里面的镜像很多. 但是导出和列表里面的却很少. 经过查询发现harbor的v2.0的API里面存在一些限制. 每次api的返回结果最多是 10

Harbor修改默认网段以及设置开机启动的方法

Harbor修改默认网段以及设置开机启动的方法 背景 docker 默认的网段是 172.16.xx.xx 网段. harbor进行设置时会自动加1 设置为 172.17.xx.xx 有时候这个网段是跟业务网段冲突的, 需要进行一下修改. 但是需要注意的是. 已经使用过很久的harbor 修改起来是

[转帖]Harbor:修改默认的172网段

背景: harbor 默认启动会随机创建 172 网段的ip地址,跟集群规划的网段冲突 Harbor 网段修改步骤 0. 原来Harbor占用的网段 # 网桥名:harbor_harbor [root@gpunode2 test]# docker network ls NETWORK ID NAME

harbor镜像仓搭建相关问题

1 环境 自己生成了SSL证书 证书目录与 harbor.cfg 文件中定义的路径需要一致 使用的是offline 包安装 执行 install.sh 脚本后,通过浏览器远程访问成功, 但是在别的机器上执行docker的登录指令报错: docker login 192.168.126.100 2 异