012.Docker私有仓库多Harbor同步部署

一 Harbor主从介绍

harbor官方默认提供主从复制的方案来解决镜像同步问题,通过复制的方式,我们可以实时将测试环境harbor仓库的镜像同步到生产环境harbor,类似于如下流程:

Harbor以“项目”为中心,通过对项目配置“复制策略”,标明需要复制的项目以及镜像。管理员在复制策略中指明目标实例,即复制的“目的地”,并对它的地址和连接时使用的用户名密码进行设置。当复制策略被激活时,源项目下的所有镜像,都会被复制到目标实例;此外,当源项目下的镜像被添加或删除(push或delete), 只要策略还在激活状态,镜像的变化都会同步到目标实例上去, 如下图所示:

在实际生产运维的中,需要把镜像发布到几十或上百台集群节点上。这时,单个Registry已经无法满足大量节点的下载需求,因此要配置多个Registry实例做负载均衡。手工维护多个Registry实例上的镜像,将是十分繁琐的事情。Harbor可以支持一主多从的镜像发布模式,可以解决大规模镜像分发与同步,架构如下:

二 Harbor主从部署

2.1 前期准备


节点

IP地址

备注

docker01

172.24.8.111

Docker harbor主节点,reg.harbor01.com

docker02

172.24.8.112

Docker harbor从节点,reg.harbor02.com

docker03

172.24.8.113

Docker客户端,用于测试仓库

建议所有节点添加hosts解析:

  1 172.24.8.111 reg.harbor01.com
  2 172.24.8.112 reg.harbor02.com

2.1 主从节点部署Harbor

部署方法可参考《011.Docker仓库管理》部署。

提示:主从节点都必须部署Harbor,本实验采用http形式,只需要修改hostname为对应的域名即可。

注意:Job services主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。因此若采用域名配置,则需要在jobservice的hosts中添加主从解析,为方便修改,可将使用以下脚本快速在所有容器hosts添加相应解析:

  1 [email protected]:~/harbor# cat addhosts.sh
  2 #!/bin/sh
  3 #****************************************************************#
  4 # ScriptName: test.sh
  5 # Author: [email protected]
  6 # Create Date: 2018-10-27 15:48
  7 # Modify Author: [email protected]
  8 #***************************************************************#
  9 docker ps | awk ‘{print $1}‘>./dockerlist.txt
 10 for id in `cat ./dockerlist.txt`
 11 do
 12     HOSTS=`docker inspect $id | grep hosts | awk -F "\"" ‘{print $4}‘`
 13     echo -e "172.24.8.111 reg.harbor01.com\n172.24.8.112 reg.harbor02.com" >> $HOSTS
 14 done

在Harbor部署完毕后执行该脚本:chmod u+x addhosts.sh && bash addhosts.sh。

2.2 主节点测试

浏览器使用默认账号和密码Harbor12345访问:http://reg.harbor01.com

2.3 创建用于复制的测试项目

2.4 仓库管理新建从目标

2.5 创建复制策略

2.6 docker 客户端测试

  1 [email protected]:~# vi /etc/hosts
  2 172.24.8.111 reg.harbor01.com
  3 172.24.8.112 reg.harbor02.com
  4 [email protected]:~# vi /etc/docker/daemon.json
  5 {
  6     "insecure-registries": ["http://reg.harbor01.com","http://reg.harbor02.com"]
  7 }
  8 [email protected]:~# systemctl daemon-reload
  9 [email protected]:~# systemctl restart docker.service
 10 [email protected]:~# docker login reg.harbor01.com		#登录registry
 11 Username: admin
 12 Password:

提示:公开的registry可pull,但push也必须登录,私有的registry必须登录才可pull和push。

  1 [email protected]:~# docker pull hello-world
  2 [email protected]:~# docker tag hello-world:latest reg.harbor01.com/copyregistry/hello-world:xhy
  3 [email protected]:~# docker push reg.harbor01.com/copyregistry/hello-world:xhy

浏览器使用默认账号和密码Harbor12345访问:http://reg.harbor01.com,查看是否同步状态:

浏览器使用默认账号和密码Harbor12345访问:http://reg.harbor02.com,查看是否同步成功:

参考链接:https://www.cnblogs.com/breezey/p/9444231.html

参考链接:https://blog.csdn.net/hiyun9/article/details/79655385

原文地址:https://www.cnblogs.com/itzgr/p/10177143.html

时间: 2024-10-15 20:27:14

012.Docker私有仓库多Harbor同步部署的相关文章

docker 私有仓库之Harbor搭建与使用

Harbor搭建 下载Harbor: wget https://github.com/vmware/harbor/releases/ 配置Harbor tar xvf harbor-online-installer-v1.1.2.tgz cd harbor 修改harbor.cnf内容如下: # 访问管理UI与注册服务的IP地址或主机名,别使用localhost或127.0.0.1,因为Harbor需要被外部的客户端访问. hostname = 10.10.10.11 # 访问UI与token/

构建docker高可用私有仓库基于Harbor开源系统

操作系统及相关软件版本说明: 测试服务器IP地址: IP 1 = 192.168.85.158,简称A仓库 IP 2 = 192.168.85.157,简称B仓库 一.Harbor项目介绍 1.Harbor来源 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务. 它以Docker公司开源的registry 为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),

Docker私有仓库部署---Harbor(实例演示!!!)

Harbor概述 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP/AD 图像删除和垃圾收集 图形UI 审计 RESTful API Harbor架构组成 Proxy 通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务 Registry 负责存储Docker镜像.并处理docker push/pull 命令 Core services Harbor的核心功能,

Docker私有仓库部署和管理

Docker私有仓库部署和管理 本章结构: Harbor介绍 部署Harbor所依赖的Docker Compose服务 部署Harbor服务 Harbor日常操作管理 Harbor管理生命周期 Harbor介绍 Harbor是VMware公司开源的企业级Docker Registry项目 Harbor的优势 基于角色控制 基于镜像的复制策略 支持LDAP目录服务/AD域服务 图像删除和垃圾收集 图形UI(可以访问Web界面) 审计 RESTful API Harbor架构组成 Proxy: 通过

局域网部署docker--从无到有创建自己的docker私有仓库

由于GFW的关系,国内用户在使用docker的时候,pull一个基本的镜像都拉下来,更不用说使用官方的index镜像了.差点放弃使用docker了,google了一圈,总算找到办法. 第一步:安装docker 参见官方指南或则各类中文指南 第二步:从文件系统创建一个image镜像 创建镜像有很多方法,官方的推荐是pull一个,无奈GFW,想下一个基本的ubuntu都下不下来 还有一个办法就是从一个文件系统import一个镜像,个人推荐可以使用opvz的模板来创建: openvz的模板下载地址如下

搭建docker私有仓库

安装Docker Docker的安装请参考官网(http://www.docker.com),非常详细的介绍了各个操作系统的部署过程. 对于CentOS 7.x操作系统的在线安装Docker,请参考如下:https://docs.docker.com/engine/installation/linux/centos 搭建Docker私有仓库 Docker官方提供了一个公有的registry叫做Docker Hub.但是企业内部可能有些镜像还是不方便放到公网上去,所以docker也提供了regis

手把手教你搭建Docker私有仓库

章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就会比较简单了. 先准备两台虚拟机: Docker客户端:192.168.1.160 Docker私有仓库服务器:192.168.1.161 两台机器上都配好yum源,安装好docker,设置好docker加速器 1.在服务端192.168.1.161上拉取仓库镜像:registry [[email protected] ~]# docker

kubernetes的的私有仓库vmware harbor的配置

kubernetes的的私有仓库vmware harbor的配置 标签(空格分隔): kubernetes系列 一. 系统环境的配置 二. vmware harbor 的安装测试 三. 发布一个测试nginx 一:系统初始化 1.1 系统主机名 192.168.100.11 node01.flyfish 192.168.100.12 node02.flyfish 192.168.100.13 node03.flyfish 192.168.100.14 node04.flyfish 192.168

删除docker私有仓库中的镜像

docker私有仓库v2版本中的镜像,官方不建议删除,但是也提供了删除接口: DELETE /v2/<name>/manifests/<reference> Host: <registry host> Authorization: <scheme> <token> 删除的原理就是把索引删掉,但磁盘上的数据是删不掉的.这是由于各个镜像之间的不同层共用的关系,可能导致删除一个镜像后其余的镜像也无法使用了. 用python实现伪删除,代码如下: #-*