安装 harbor 2.7.1

[TOC]

理论基础

什么是harbor

Harbor 是 VMware 公司开源、用于存储和分发Docker镜像的企业级 Registry 项目,可以用来构建企业内部的Docker镜像仓库。它以 Docker 公司开源的 Registry 为基础,提供了图形管理UI、基于角色的访问控制、AD/LDAP 集成、审计日志等企业用户需求的功能,同时还原生支持中文。它的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。

harbor要解决的问题

以Docker为代表的容器技术的出现,改变了传统的交付方式。通过把业务及其依赖的环境打包进Docker镜像,解决了开发环境和生产环境的差异问题,提升了业务交付的效率。如何高效地管理和分发Docker镜像?是众多企业需要考虑的问题。

有了docker自带的registry为什么还要用harbor

  • harbor的安全机制。可以根据角色灵活的进行权限控制,如访客只需给pull权限即可
  • harbor独特的镜像同步机制,保证了仓库的高可用性。
  • 可利用图形界面进行镜像等等的管理
  • 提供分层传输机制,优化网络传输

harbor的架构组件

Harbor在架构上主要如下组件构成:

  • 1.Proxy(harbor-ui):Harbor的Registry、UI、 WebHook、Token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。
  • 2.Registry:负责储存Docker镜像,并处理docker push/pull 命令。
  • 3.Core services:这是Harbor的核心功能,主要提供:UI图形化界面、webhook、token服务。
  • 4.Database(harbor-db):为core services提供数据库服务,负责储存用户权限、审计日志、Dockerimage分组信息等数据。
  • 5.Log collector(harbor-log):为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
  • 6.Job services:主要用于镜像复制,本地镜像可以被同步到远程 Harbor 实例上。

安装 harbor 2.7.1

#.官网:https://github.com/goharbor/harbor/releases
#.示例:harbor.xxx.com 指向 192.168.4.233
  • 第1步,安装docker ce v24.0.1
curl -sL 'http://iso.sqlfans.cn/docker/install_docker_2401.sh' | bash
sudo docker --version
  • 第2步,安装docker-compose v2.18.1
curl -sL 'http://iso.sqlfans.cn/docker/install_docker_compose_2181.sh' | bash
sudo docker-compose --version
  • 第3步,配置hosts文件
cat /etc/hosts | grep "harbor.xxx.com" > /dev/null || echo "192.168.4.233 harbor.xxx.com" >> /etc/hosts
cat /etc/hosts | grep harbor
  • 第4步,下载harbor v2.7.1
curl -s -L http://iso.sqlfans.cn/docker/harbor-offline-installer-v2.7.1.tgz -o /opt/harbor-offline-installer-v2.7.1.tgz
mkdir -p /data/harbor/{ssl,data,logs}
tar -zxvf /opt/harbor-offline-installer-v2.7.1.tgz -C /data/
  • 第5步,确认https证书
ll /data/harbor/ssl/harbor.xxx.com.crt
ll /data/harbor/ssl/harbor.xxx.com.key
  • 第6步,安装harbor v2.7.1
cat > /data/harbor/harbor.yml <<EOF
hostname: harbor.xxx.com
http:
  port: 80
https:
  port: 443
  certificate: /data/harbor/ssl/harbor.xxx.com.crt
  private_key: /data/harbor/ssl/harbor.xxx.com.key
harbor_admin_password: AdMin_147
database:
  password: AdMin_147
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data/harbor/data
trivy:
  ignore_unfixed: false
  skip_update: false
  offline_scan: false
  insecure: false
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /data/harbor/logs
_version: 2.4.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
EOF

cat /data/harbor/harbor.yml | egrep "(hostname|password|data_volume|location|ssl|http:|https:|port:)"

sh /data/harbor/prepare
sh /data/harbor/install.sh --with-notary --with-trivy --with-chartmuseum
docker-compose -f /data/harbor/docker-compose.yml up -d
docker ps -a | grep goharbor
  • 第7步,客户端:配置hosts
type NUL > C:\Windows\system32\drivers\etc\hosts
echo 192.168.4.233 harbor.xxx.com > C:\Windows\system32\drivers\etc\hosts
type C:\Windows\system32\drivers\etc\hosts
  • 第8步,客户端:浏览器访问harbor域名
#地址:https://harbor.xxx.com
#账号:admin
#密码:AdMin_147

附:重来一遍

docker-compose -f /data/harbor/docker-compose.yml down
docker rmi -f $(docker images | egrep "(goharbor)" | awk '{print $3}')
rm -rf /data/harbor
Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2024-06-17 17:18:45

results matching ""

    No results matching ""