Harbor安装和简单使用

Harbor安装及简单使用

写在前面

CI/CD 小白鼠,组内的CI/CD在研发中心内部做的算是不错的,对此比较感兴趣,之前一直没有缕清流程和实现方式,这几周要利用业余时间研究下,按照自己的理解字面化下,整体按照下面这个思路来捋:

  • Harbor使用
  • Gitlab CI 使用
  • Jenkins使用
  • Helm管理K8s
  • GitLlab CI 集成K8S

暂定按照这个思路每周整理一至两篇,今天写Harbor的使用。

佛系程序员,别DISS我。

Harbor安装

harbor所有服务是通过docker启动,启动脚本通过docker-compose管理docker,因此在安装harbor前需要安装docker和docker-compose。此处略。
对docker和docker-compose版本有要求.仔细看官网要求:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/

安装有两种方式:在线安装和离线安装。按照自己网络情况选择,个人经历是在线安装时下载镜像失败或者及其慢,后选择了离线安装。
GITHUB上有安装包,地址:https://github.com/goharbor/harbor
在宿主机上直接执行下面这条命令下载会比较快,我安装的是v1.10.3版本的,按照自己的需求改版本号就行了。安装步骤如下:

# 下载
wget https://storage.googleapis.com/harbor-releases/release-1.10.3/harbor-offline-installer-v1.10.3.tgz

# 解压,解压完成是一个harbor文件夹
tar -zxvf harbor-offline-installer-v1.10.3.tgz
cd harbor
# 找到harbor.yml,修改配置文件
# 修改主机名
hostname: 宿主机的IP或domain
# admin用户密码,默认是:Harbor12345,按需修改
harbor_admin_password: Harbor12345
# 配置http方式的话,目前已经够了。
# 启动,当前目录下执行:install.sh
./install.sh
# 服务启动情况检查
docker-compose ps

      Name                     Command                  State                 Ports          
---------------------------------------------------------------------------------------------
harbor-core         /harbor/harbor_core              Up (healthy)                            
harbor-db           /docker-entrypoint.sh            Up (healthy)   5432/tcp                 
harbor-jobservice   /harbor/harbor_jobservice  ...   Up (healthy)                            
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp
harbor-portal       nginx -g daemon off;             Up (healthy)   8080/tcp                 
nginx               nginx -g daemon off;             Up (healthy)   0.0.0.0:80->8080/tcp     
redis               redis-server /etc/redis.conf     Up (healthy)   6379/tcp                 
registry            /home/harbor/entrypoint.sh       Up (healthy)   5000/tcp                 
registryctl         /home/harbor/start.sh            Up (healthy)               

正常情况下,只要宿主机配置满足要求,都能正常启动,我碰到的问题:

使用

使用起来比较简单,打好镜像包之后,将镜像tag为私有仓库开头的名称。已个人测试环境为例

docker login 192.168.60.153 -u xxx -p xxx
docker tag SOURCE_IMAGE[:TAG] 192.168.60.153/wops/IMAGE[:TAG]
docker push 192.168.60.153/wops/IMAGE[:TAG]

好了,快去harbor里面看看吧。
Harbor安装和简单使用_第1张图片

Q&A

  • harbor-db 一直重启
    解决流程:
    (1) 查看日志,日志存放路径:/var/log/harbor/,数据库对应日志为:postgresql.log
    报错信息:initdb: directory “/var/lib/postgresql/data” exists but is not empty。因为本身宿主机上没这个文件夹,理论上没问题才对,不知道吃了什么药,一直报这个错。解决方式是找到docker-compose.yml文件,修改harbor-db映射的挂载路径(data->data1这里按需改):
volumes:
      - /data/database:/var/lib/postgresql/data1:z

修改后需要重启服务,再看状态

docker-compose restart
docker-compose ps

目前我只遇到过这一个问题,后续有将继续补充。

你可能感兴趣的:(CI/CD)