小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署)

这篇具有很好参考价值的文章主要介绍了小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 仓库服务。它以Docker公司开源的Registry为基础,提供了管理 UI。基于角色的访问控制(Role Based AccessControl)、AD/LDAP集成、以及审计日志 (Auditlogging) 等企业用户需求的功能。通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全,以提升用户使用 Registry 构建和运行环境传输镜像的效率。

Harbor 的优势

1、基于角色控制:用户和仓库都是基于项目进行组织的,而用户基于项目可以拥有不同的权限。

2、基于镜像的复制策略: 镜像可以在多个 Harbor 实例之间进行复制(同步)。适用于负载平衡、高可用性、多数据中心、混合和多云场景。

3、支持 LDAP / AD:Harbor 与现有的企业 LDAP / ADA 集成,用于用户认证和管理。

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

5、图形 UI:用户可以轻松浏览、搜索镜像仓库以及对项目进行管理。

6、审计: 对存储库的所有操作都进行记录。

7、RESTful API:用于大多数管理操作的 RESTful API,易于与外部系统集成。

二、Harbor 架构构成

1、Proxy:Harbor 的 Registry、UI、token 等服务。通过一个前置的反向代理统一接收浏览器Docker 客户端的请求,并将请求转发给后端不同的服务。

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

3、Core services 这是 Harbor 的核心功能,主要提供以下服务:

        ①、UI(Harbor-ui):提供图形化界面,帮助用户管理 Registry 上的镜像(image), 并对用户进行授权。

        ②、Webhook:为了及时获取 registry 上image状态变化的情况,在Registry上配置webhook,把状态变化传递给UI模块。

        ③、Token 服务:负责根据用户权限给每个Docker push/pull命令签发token.Docker客户端向 Regiøstry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向 Registry进行请求。

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

5、Log collector(Harbor-log):为了帮助监控 Harbor 运行,负责收集其他组件的log,供日后进行分析。

                                             小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维       

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

三、准备工作

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

1、三台主机提前安装docker-ce

2、master、slave安装docker-compose

3、关闭防火墙

4、最好是有火狐浏览器(测试的时候用其他浏览器可能会报错)

四、安装部署

1、搭建nfs服务端

mkdir -p /data/nfs                                    创建共享目录
yum -y install nfs-utils rpcbind                      安装软件
cat <<END>> /etc/exports                                      
/data/nfs 192.168.77.0/24(rw,no_root_squash)          映射
systemctl start rpcbind                               启动软件
systemctl start nfs

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

主从服务器操作

yum -y install nfs-utils rpcbind
mkdir -p /data/storage
mount 192.168.77.16:/data/nfs /data/storage

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 在nfs端操作

准备共享容器

docker pull redis:alpine
docker run -dit --name redis_test -p 6379:6379 redis:alpine

docker pull postgres
docker run -dit --name postgres_test -p 5432:5432 -e POSTGRES_PASSWORD=123123 postgres

docker pull mysql:5.6
docker run -dit --name mysql_test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 mysql:5.6 --character-set-server=utf8

docker rename postgres_test clair_db
docker rename mysql_test harbor_db
docker rename redis_test session

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

2、Harbor部署

tar xf harbor-offline-installer-v1.6.1.tgz
cd harbor/
tree ha

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

vim ha/initial-registry.sql            修改需要导入的数据库文件,不然会报错
CREATE DATABASE registry CHARACTER SET utf8;

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维 

yum -y install mysql
mysql -uroot -p123123 -h192.168.77.16 -P3306
source ha/initial-registry.sql

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

vim ha/docker-compose.yml
19行       - /data/storage:/storage:z	#修改成我们的nfs共享目录

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

vim harbor.cfg
7 hostname = 192.168.77.123

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维 

sh install.sh

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 出现以下字段就表示成功了

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 再查看容器确认一下都是UP小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 登录镜像仓库,默认用户是admin 密码是Harbor12345

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维 

五、测试

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

创建一个新项目myproject-crushlinux 

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker login -u admin -p Harbor12345 http://127.0.0.1 登录仓库 默认是80端口

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker pull buysbox 下载一个小一点的镜像测试

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker tag busybox 127.0.0.1/myproject-crushlinux/busybox:syh  打标签
docker push 127.0.0.1/myproject-crushlinux/busybox:syh         上传镜像

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 到仓库查看

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker logout 192.168.77.123 退出仓库

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

六、客户端上传镜像

vim /usr/lib/systemd/system/docker.service
13行  ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  --insecure-registry 192.168.77.123 

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

重启后登录
systemctl daemon-reload 
systemctl restart docker
docker login -u admin -p Harbor12345 192.168.77.123

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker pull busybox       下载一个小一点的镜像进行测试

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

docker tag busybox 192.168.77.123/myproject-crushlinux/busybox:syh2
docker push 192.168.77.123/myproject-crushlinux/busybox:syh2

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 查看

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 七、Harbor 日常操作管理

1、通过 Harbor Web 创建项目 

点击“+项目”时按规范填写项目名称。项目级别:私有即不勾选(勾选后会变为"公开")。如果设置为公共仓库,则所有人对此项目下的镜像拥有读权限,命令行中不需要执行"Docker login"即可下载镜像,镜像操作与Docker hub 一致。

2、创建 Harbor 用户 

①、创建用户并分配权限

系统管理->用户管理->创建用户,填写用户名为“crushlinux-user01”,邮箱为 crushlinux-user01@crushlinux.cn,全名为“harbor admin”,密码为“A123a456”,注释为“管理员”。

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

 小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维 

②、添加项目成员

项目-> myproject-crushlinux->成员->+成员,填写上述创建的用户并分配角色为“项目管理员”。

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

可对成员角色进行变更或者删除操作。

小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署),运维

以上就是Harbor企业镜像仓库部署

如有错误欢迎各位大佬批评指正,我们共同进步

 

 

 

 

到了这里,关于小白到运维工程师自学之路 第六十七集(Harbor企业镜像仓库部署)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 小白到运维工程师自学之路 第四十四集 (mariadb高可用集群故障转移)

            故障转移是指在集群中某个节点发生故障时,自动将服务转移到其他正常节点上的 过程。在MariaDB高可用集群中,通常使用主从复制的方式来实现故障转移。其中一个 节点被指定为主节点,负责处理所有的写操作和部分读操作,其他节点作为从节点,负 责复制主

    2024年02月11日
    浏览(47)
  • 小白到运维工程师自学之路 第四十九集 (正则表达式之grep)

    1、正则表达式(Regular Expression,简称为RegExp或Regex)是一种用于描述、匹配和操作文本的字符串模式的表达式。它提供了一种强大而灵活的方式来进行字符串的搜索、替换、提取和验证操作。 2、正则表达式可以用于各种编程语言和应用程序中,包括文本编辑器、命令行工具

    2024年02月13日
    浏览(48)
  • 小白到运维工程师的自学之路 第五十四集 (ansible自动化运维工具)

    Ansible是一种开源的自动化工具,用于自动化任务的执行、配置管理和应用部署。它采用基于Python编写的简单、轻量级的语法,可以通过SSH协议远程管理和配置多台计算机。 Ansible的主要特点包括: 1、简单易用:设计简单,语法清晰,无需特殊培训即可上手使用。 2、基于模块

    2024年02月16日
    浏览(40)
  • 小白到运维工程师自学之路 第七十九集 (基于Jenkins自动打包并部署Tomcat环境)2

      拉到最后选择构建后操作 拉到最后点击保存   访问192.168.77.19:8080/probe 账户密码都是tomcat  

    2023年08月27日
    浏览(58)
  • 猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路

    最近 CSDN 开展了猿创征文,希望博主写文章讲述自己在某个领域的技术成长历程。 之前也曾想找个机会写篇文章,记录下自己的成长历程。 因此,借着这个机会写下这篇文章。 在回顾自己的成长历程的同时,希望对一些同学的学习和工作也会有一些启发和帮助。 阅读本文,

    2024年02月16日
    浏览(50)
  • 后端工程师晋升之路

    入门 0.5 年 第 1 计:不要过于纠结方向选择问题。 开始入门的时候,我们可能都会纠结于选择前端还是后端,选择了后端还犹豫到底选 Java、Go 还是 Python。 其实,我觉得不用过于纠结。如果说你对偏前端的内容感兴趣,那就从前端入手;对数据库方面的内容感兴趣,那就从

    2024年02月10日
    浏览(43)
  • 零基础如何自学成为网络安全工程师

    一份网络攻防渗透测试的学习路线,不藏私了! 👉 【一帮助安全学习一】👈这里自取256G网络安全自学资料 1、学习编程语言(php+mysql+js+html) php+mysql可以帮助你快速的理解B/S架构是怎样运行的,只有理解了他的运行原理才能够真正的找到问题/漏洞所在。所以对于国内那些上来

    2024年02月16日
    浏览(55)
  • 【良品】运维实施工程师面试题

    答:netstat –anpt | grep 8089 答:kill -9 4728/ 答:find . -name \\\"en* \\\" 答:chmod +x filename.sh 答:tar -xf .gz -C /usr/local unzip .zip 答:rpm -q smile ; rpm -e smile 答:vi /etc/profile  添加内容 JAVA_HOME=/usr/local/java/jdk1.8.0_221 PATH=JAVAHOME/bin:PATH CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME expo

    2024年02月09日
    浏览(45)
  • 【运维工程师学习】Debian安装

    选择镜像文件 进入安装选择界面 graphical install 图形安装 Install 安装系统 advanced options 高级选项 Help 帮助 accessible dark contrast installer menu 无障碍暗色对比度安装程序菜单 (旨在为视力有障碍的用户提供更好的可访问性,提供了: 高对比度主题、大字体选项、屏幕阅读器支持) In

    2024年02月12日
    浏览(60)
  • 初级运维工程师面试题

    1、apache有几种工作模式,分别简述两种工作模式及其优缺点? apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加–with-mpm=worker选项) prefork的特点是:(预派生) 1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 2.可以防

    2024年02月08日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包