Harbor 部署、操作使用指南

这篇具有很好参考价值的文章主要介绍了Harbor 部署、操作使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 概述

Harbor是VMware公司开源的企业级Docker Registry 项目,其目标是帮助用户迅速搭建一个 企业级的Docker Registry 服务。虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署企业自己的私有镜像仓库也是非常必要的。

Harbor以docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成,以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。

Harbor的每个组件都是以Docker容器的形式构建的,使用docker-compose来对它进行部署;用于部署Harbor的docker-compose模板位于/usr/local/bin/harbor/docker-compose.yml(自定义);Docker harbor有可视化的web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能。

1.1 harbor的优势:

(1)基于角色控制:有管理员与普通用户,可赋权普通用户,比如只能上传和下载,可根据项目来进行操作和管理。

(2)基于镜像的复制策略:镜像可以在多个Harbor实例之间进行复制(同步)。

(3)支持LDAP/AD:Harbor 可以集成企业内部有的AD/LDAP (类似数据库的一-张表),用于对已经存在的用户认证和管理。

(4)镜像删除和垃圾回收:镜像可以被删除,也可以回收镜像占用的空间。

(5)图形化用户界面:用户可以通过浏览器来浏览,搜索镜像仓库以及对项目进行管理。

(6)审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

(7)支持RESTful API:RESTful API提供给管理员对于Harbor 更多的操控,使得与其它管理软件集成变得更容易。

(8)Harbor和docker registry的关系:Harbor实质上是对docker registry做了封装,扩展了自己的业务模板。

1.2 harbor的核心组件:

Harbor在架构上主要有Proxy、 Registry、 Core services、 Database ( Harbor-db)、Log collector ( Harbor-log)、Job services六个组件。

(1)Proxy这是一个反向代理组件;Harbor 的Registry、UI、Token 服务等组件,都处在nginx 反向代理后边。该代理将来自浏览器、docker clients .的请求转发到后端不同的服务上。

(2)Registry负责储存Docker 镜像,并处理Docker push/pull 命令;由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry 会指向一个Token 服务,强制用户的每次Docker pull/push 请求都要携带一个合法的Token,Registry会通过公钥对Token 进行解密验证。

(3)Core services: Harbor的核心功能,主要提供以下3个服务:

  • UI (harbor-ui) :提供图形化界面,帮助用户管理Registry. 上的镜像(image) ,并对用户进行授权。
  • WebHook:网站的一些服务功能,为了及时获取Registry.上 image状态变化的情况,在Registry上配置Webhook, 把状态变化传递给UI模块。
  • Token 服务:令牌,提供身份验证服务,负责根据用户权限给每个Docker push/pull 命令签发Token。 Docker 客户端向Registry 服务发起的请求,如果不包含Token, 会被重定向到Token 服务,获得Token 后再重新向Registry 进行请求。

(4)Database (harbor-db) 为core services提供数据库服务,负责储存用户权限、审计日志、Docker镜像分组信息等数据。

(5)Job services主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。

(6)Log collector (harbor-log)负责收集其他组件的日志到一个地方。

Harbor的每个组件都是以Docker 容器的形式构建的,因此,使用Docker Compose 来对它进行部署。通过在docker- compose . yml所在目录中执行docker-compose ps命令来查看。

1.3 harbor主要功能及优势

  • 基于角色的访问控制

用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

  • 基于镜像的复制策略

镜像可以在多个Registry实例中复制(可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能),尤其适合于负载均衡,高可用,混合云和多云的场景。

  • 图形化用户界面

用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

  • 支持 AD/LDAP

Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

  • 镜像删除和垃圾回收

Harbor支持在Web删除镜像,回收无用的镜像,释放磁盘空间。image可以被删除并且回收image占用的空间。

  • 审计管理

所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

  • RESTful API

RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。

  • 部署简单

提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

1.4 harbor的简易架构:

harbor教程,Linux运维,运维

如图所示:
所有的请求都经过proxy代理,proxy代理转发给Core services和Registry,其中Core services包括UI界面、token令牌和webhook网页服务功能,Registry主要提供镜像存储功能。如果要进行下载上传镜像,要经过token令牌验证然后从Registry获取或上传镜像,每一次下载或上传都会生成日志记录,会记入Log collector,而用户身份权限及一些镜像语言信息会被存储在Database中

2. 部署环境搭建(使用云服务器部署)

2.1 卸载服务器中的旧版本docker及其安装时自动安装的所有包

sudo apt-get autoremove docker docker-ce docker-engine  docker.io  containerd runc

#删除docker其他没有卸载
dpkg -l | grep docker
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P    #删除无用的相关的配置文件

sudo apt-get autoremove docker-ce-*

#删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d   
sudo rm -rf /var/lib/docker

#查看确定docker卸载完毕
docker --version

2.2 安装最新版的docker及docker-compose

①安装必要的系统工具

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common gnupg-agent

②安装GPG证书

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

写入软件源信息

sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

安装Docker及其组件

sudo apt-get -y update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

sudo apt install -y python3-pip

sudo pip3 install docker-compose

2.3 创建证书(如不使用域名访问可忽略跳过此步骤)

a. 创建一个保存证书的目录

mkdir -p /data/cert/

b. 生成证书颁发机构证书(使用server.yin123.com登录

#生成 CA 证书私钥
sudo openssl genrsa -out ca.key 4096

#生成 CA 证书  
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.yin123.com" \
-key ca.key \
-out ca.crt

c. 生成服务器证书

#生成 CA 证书私钥
sudo openssl genrsa -out server.yin123.com.key 4096

#生成证书签名请求 (CSR)
sudo openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.yin123.com" \
-key server.yin123.com.key \
-out server.yin123.com.csr

#生成 x509 v3 扩展文件
sudo vim v3.ext

v3.ext内容如下

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names] 
DNS.1=server.yin123.com 
DNS.2=yin123.com 
DNS.3=server
#使用该v3.ext文件Harbor 主机生成证书
sudo openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in server.yin123.com.csr \
-out server.yin123.com.crt

d. 向 Harbor 和 Docker 提供证书

#将服务器证书和密钥复制到 Harbor 主机上的 certficates 文件夹中
cp server.yin123.com.crt /data/cert/
cp server.yin123.com.key /data/cert/

#转换crt为cert 供 Docker 使用
#Docker 守护进程将.crt文件解释为 CA 证书,将.cert文件解释为客户端证书
openssl x509 -inform PEM -in server.yin123.com.crt -out server.yin123.com.cert

#将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。必须先创建文件夹
mkdir -d /etc/docker/certs.d/server.yin123.com/
cp server.yin123.com.cert /etc/docker/certs.d/server.yin123.com/
cp server.yin123.com.key /etc/docker/certs.d/server.yin123.com/
cp ca.crt /etc/docker/certs.d/server.yin123.com/

#重启docker
systemctl restart docker

3. 下载、安装 harbor

Harbor 提供了多种安装方式:

  • 在线安装:通过在线安装包安装 Harbor,在安装过程中需要从 Docker Hub 获取预置的 Harbor 官方组件镜像。
  • 离线安装:通过离线安装包安装 Harbor,从离线安装包中装载所需要的 Harbor组件镜像。
  • 源码安装:通过编译源码到本地安装 Harbor。
  • 基于 Helm Chart 的安装:通过 Helm 安装 Harbor Helm Chart 到 Kubernetes 集群。

这里采用离线安装,去官网下载想要的版本,这里以2.4.2版本为例。

a. 将下载下来的压缩包传到服务器中,并解压

tar xvf harbor-offline-installer-v2.4.2.tgz

b. 复制修改配置文件

新版本的harbor配置文件已经改为用harbor.yml而不是harbor.cfg

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

修改相应参数,参考下图,根据实际情况

harbor教程,Linux运维,运维

c. 执行安装脚本

sudo ./install.sh

sudo ./install.sh --with-notary --with-notary --with-trivy --with-chartmuseum同时安装插件Notary、Trivy 和Chart 存储库服务(可选)。

harbor教程,Linux运维,运维

d. 查看组件的启动情况

docker ps

harbor教程,Linux运维,运维

cd 到 docker-compose.yml的目录下docker-compose ps

harbor教程,Linux运维,运维

e.web访问,进行初始化

此处没有域名,所以使用 ip 登录

harbor教程,Linux运维,运维

输入之前设置的用户名和密码就可以登录了!

4. 卸载

卸载harbor步骤:(针对脚本一键安装)

docker-compose down   #停止 docker-compose 
rm -rf /data *    #删除挂载的harbor持久化数据的目录内容
rm -rf /opt/harbor   #删除harbor目录
docker-compose up -d   #重启

5. 基础操作使用

参考:Harbor docs | Harbor Administration

5.1 命令行登录、拉取、上传等基础操作

命令行登录

harbor教程,Linux运维,运维

新建一个项目

harbor教程,Linux运维,运维

进入项目,可以看到不同的推送命令

harbor教程,Linux运维,运维

harbor教程,Linux运维,运维

命令行拉取镜像

harbor教程,Linux运维,运维

# 登陆
docker login -u admin -p Harbor12345 http://47.97.177.130

# 下载镜像进行测试
docker pull busybox

# 镜像打标签   busybox:镜像名   hjj_test:仓库名   
docker tag busybox 47.97.177.130/hjj_test/busybox:v1

# 推送镜像到Harbor
docker push 47.97.177.130/hjj_test/busybox:v1

# 从仓库拉取镜像
docker pull https://47.97.177.130/hjj_test/busybox:v1

# 查看镜像
docker images

5.2 配置数据库身份验证

如果在数据库中创建用户,Harbor 会被锁定在数据库模式,将无法更改为其他身份验证模式。

Harbor有2种认证方式:auth_mode 使用的身份验证类型

db_auth——默认,凭据存储在数据库中

ldap——对于LDAP身份验证,需将其设置为ldap_auth

harbor教程,Linux运维,运维

5.3 项目创建权限及仓库只读设置

在只读模式下,Harbor 允许docker pull 但阻止docker push和删除存储库和标签。

harbor教程,Linux运维,运维

harbor教程,Linux运维,运维

  • 受限访客:受限访客没有项目的完全读取权限。他们可以拉取镜像但不能推送,而且他们看不到日志或项目的其他成员。例如,管理员可以为来自不同组织的共享项目访问权限的用户创建受限访客。
  • 来宾:来宾对指定项目具有只读权限。他们可以拉取和重新标记镜像,但不能推送。
  • 开发者:开发者拥有项目的读写权限。维护者:维护者拥有超越“开发者”的权限,包括扫描镜像、查看复制作业以及删除镜像和掌舵图的能力。
  • ProjectAdmin:创建新项目时,可以分配给项目的“ProjectAdmin”角色。“ProjectAdmin”除了读写权限外,还有一些管理权限,如添加和删除成员、启动漏洞扫描等。
  • Harbor 系统管理员:“Harbor 系统管理员”拥有最多的权限。除了上述权限外,“Harbor 系统管理员”还可以列出所有项目、设置普通用户为管理员、删除用户以及为所有镜像设置漏洞扫描策略。公共项目“库”也归管理员所有。
  • 匿名:当用户未登录时,该用户被视为“匿名”用户。匿名用户无权访问私有项目,而对公共项目具有只读访问权限。

5.4 配置项目配额

要对资源使用进行控制,可以为项目设置配额,限制项目可以使用的存储容量,默认情况下,所有项目都有无限的存储使用配额。

harbor教程,Linux运维,运维

5.5 配置复制

复制允许用户以拉取或推送模式在 Harbor 和非 Harbor 注册表之间复制资源。

管理注册表:Registries下可以列出、添加、编辑和删除注册表,只能删除未被任何规则引用的注册表。

harbor教程,Linux运维,运维

harbor教程,Linux运维,运维

创建复制规则参考:Harbor docs | Creating a Replication Rule

5.6 漏洞扫描

Harbor 通过开源项目 Trivy 提供对图像漏洞的静态分析,必须在安装 Harbor 实例时启用 Trivy(通过附加安装选项--with-trivy)。

5.7 创建系统机器人帐户

Harbor v2.2 引入了管理员创建系统机器人帐户的功能,可以使用这些帐户在 Harbor 实例中运行自动化操作。


 文章来源地址https://www.toymoban.com/news/detail-779907.html

到了这里,关于Harbor 部署、操作使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(61)
  • k8s使用helm部署Harbor镜像仓库并启用SSL

    参照:https://zhaoll.blog.csdn.net/article/details/128155767 有多种安装方式,根据自己的k8s版本选择合适的helm版本 参考:https://blog.csdn.net/qq_30614345/article/details/131669319 我们这里使用helm安装harbor,项目地址:https://github.com/goharbor/harbor-helm (1)拉取项目文件 (2)解压并修改配置 tar -z

    2024年02月16日
    浏览(28)
  • 【云原生 | Docker 高级篇】11、Docker 私有镜像仓库 Harbor 安装及使用教程

    目录 一、Harbor 介绍 二、Harbor 的优势 三、Harbor 部署安装 3.1 部署环境 3.2 为 Harbor 自签发证书 3.3 安装 Harbor 3.4 设置开机自启 四、Harbor 图像化界面使用说明 4.1 修改本地 hosts 文件 4.2 访问 harbor 4.3 创建项目 五、测试使用 harbor 私有镜像仓库 5.1 修改 docker 配置 5.2 登录 harbor

    2024年01月17日
    浏览(26)
  • 【Harbor Https】Harbor部署https并配置containerd拉取镜像

    新项目,要接手另一个k8s集群,那个集群是kubernates1.24的rke2版本,里面已经不用docker容器了,使用了containerd容器来生成pod,因此需要变化我们以前的docker使用方式。首先第一步需要把harbor的镜像由http更改为https。 这里我使用harbor安装的ip【10.38.199.203】地址来生成证书,也可

    2024年02月04日
    浏览(30)
  • 【云原生-Harbor】企业级搭建镜像仓库Harbor最佳教程

    Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。 官网:https://goharbor.io/ 开源地址:https://github.com/goharbor/har

    2024年02月02日
    浏览(58)
  • Docker部署 Harbor

    Docker部署 registry Docker搭建 svn Docker部署 Harbor Docker 部署SQL Server 2017 Docker 安装 MS SqlServer Docker部署 Oracle12c Docker部署Jenkins Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署企业内部的私有环

    2024年02月12日
    浏览(29)
  • 部署Harbor

    案例概述:将项目全部打包成镜像部署到私有仓库,选择用Docker Harbor 具有可视化的Web管理界面。 实验环境:虚拟机192.168.80.10(版本号:Centos7) 实现步骤: 一:安装docker (版本号:20.10.17) 二:下载Docker-Compose服务(版本号:1.21.1) 三:部署Harbor服务 四:测试Harbor上传、

    2024年02月12日
    浏览(28)
  • Harbor企业镜像仓库部署(本地)

    简述: Docker 官方镜像仓库是用于管理公共镜像的地方,大家可以在上面找到想要的镜像,也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网,或者不希望将自己的镜像放到互联网上,那么就需要用到 Docker Registry 私有仓库,它可以用来存储和管理自己的镜像。

    2024年02月14日
    浏览(28)
  • Harbor安装部署实战详细手册

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。

    2024年02月16日
    浏览(25)
  • harbor(docker仓库)仓库部署

    虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包