Harbor高可用配置及仓库使用介绍

目录
  • 一、Harbor 简介
    • 1.Harbor 功能介绍
    • 2.Harbor 高可用方式
  • 二、Harbor 仓库使用介绍
    • 1.安装 Docker
    • 2.安装 Docker-Compose
    • 3.配置 Harbor
    • 4.Harbor 高可用配置
      • 1)安装 Nginx 服务
      • 2)修改 Nginx 配置文件
      • 3)Harbor 界面配置
    • 5.验证

一、Harbor 简介

Harbor 是由 VMware 公司使用 Go 语言开发,主要就是用于存放镜像使用,同时我们还可以通过 Web 界面来对存放的镜像进行管理。并且 Harbor 提供的功能有:基于角色的访问控制,镜像远程复制同步,以及审计日志等功能。官方文档

1.Harbor 功能介绍

1)基于角色的访问控制: 我们可以通过项目来对用户进行权限划分,项目中可以包含多个镜像。

2)审计管理: 我们可以在用户审计管理中,找到我们所有对镜像仓库做的操作。

3)镜像复制: 我们可以通过配置,使在两台 Harbor 服务器间实现镜像同步。

4)漏洞扫描: Harbor 会定期对仓库中的镜像进行扫描,并进行策略检查,以防止部署出易受到攻击的镜像。

2.Harbor 高可用方式

目前 Harbor 最常见的高可用方式有两种,分别是:

1)安装两台 Harbor 仓库,他们共同使用一个存储(一般常见的便是 NFS 共享存储)

2)安装两台 Harbor 仓库,并互相配置同步关系。

因为第一种方式的话,需要额外配置 Redis 和 PostgreSQL 以及 NFS 服务,所以我们下面使用第二种方式进行 Harbor 高可用配置。

二、Harbor 仓库使用介绍

准备工作:

主机名 操作系统 IP 地址
Nginx CentOS 7.x 192.168.1.1
Harbor-01 CentOS 7.x 192.168.1.2
Harbor-02 CentOS 7.x 192.168.1.3

1.安装 Docker

1)安装基础包

[root@Harbor-01 ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

2)配置 Docker 的 yum 源

[root@Harbor-01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@Harbor-01 ~]# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3)安装并启动 Docker

我们可以使用 yum list docker-ce --showduplicates | sort -r 命令来查看 Docker 的所有版本。

[root@Harbor-01 ~]# yum -y install docker-ce-19.03.12 docker-ce-cli-19.03.12
[root@Harbor-01 ~]# systemctl enable docker --now									# 启动并配置开机自启动

2.安装 Docker-Compose

[root@Harbor-01 ~]# wget "https://github.com/docker/compose/releases/download/v2.3.2/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
[root@Harbor-01 ~]# chmod +x /usr/local/bin/docker-compose
[root@Harbor-01 ~]# docker-compose --version

3.配置 Harbor

1)安装 Harbor

[root@Harbor-01 ~]# wget https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz
[root@Harbor-01 ~]# tar zxf harbor-offline-installer-v2.3.1.tgz

2)修改 Harbor 配置文件

[root@Harbor-01 ~]# cd harbor/
[root@Harbor-01 ~]# cp harbor.yml.tmpl harbor.yml
[root@Harbor-01 ~]# sed -i 's/reg.mydomain.com/192.168.1.2/' harbor.yml					# 修改 Harbor 主机名
[root@Harbor-01 ~]# mkdir -p /app/harbor/data
[root@Harbor-01 ~]# sed -i '/data_volume/s/\/data/\/app\/harbor\/data/' harbor.yml		# 修改存储目录

3)启动 Harbor

[root@Harbor-01 ~]# ./install.sh

启动时出现:ERROR:root:Error: The protocol is https but attribute ssl_cert is not set 报错,这个报错是因为 Harbor 配置文件里的 HTTPS 相关配置 并没有进行修改或是关闭处理。

重新安装即可。

验证:http://192.168.1.2(默认的账号密码为:admin/Harbor12345)

4.Harbor 高可用配置

1)安装 Nginx 服务

[root@Nginx ~]# yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl
[root@Nginx ~]# wget http://www.nginx.org/download/nginx-1.21.0.tar.gz
[root@Nginx ~]# ls
anaconda-ks.cfg  nginx-1.21.0.tar.gz
[root@Nginx ~]# tar zxf nginx-1.21.0.tar.gz -C /usr/src/
[root@Nginx ~]# cd /usr/src/nginx-1.21.0/
[root@Nginx nginx-1.21.0]# useradd -M -s /sbin/nologin nginx
[root@Nginx nginx-1.21.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-stream \
--with-pcre && make && make install
[root@Nginx nginx-1.21.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

2)修改 Nginx 配置文件

[root@Nginx ~]# cat <<END >> /usr/local/nginx/conf/nginx.conf
stream {
    upstream harbor {
        server 192.168.1.2:80;
        server 192.168.1.3:80 backup;									# 备用服务器
    }
    server {
        listen 5000;
        proxy_pass harbor;
        proxy_timeout 300s;
        proxy_connect_timeout 5s;
    }
}
END
[root@Nginx ~]# nginx -s reload
[root@Nginx ~]# echo "192.168.1.1 harbor.tianya.com" >> /etc/hosts

上面配置 backup(备用)的原因,主要就是因为 Harbor 需要使用账号密码来进行验证。

也就是说,当我们登录到其中一台 Harbor 主机上,可能还会轮询到另一台 Harbor 主机上,但是这另一台 Harbor 主机并没有使用账号密码来进行验证。可能就会阶段性的出现 401 Unauthorized(认证失败)错误码。

3)Harbor 界面配置

1)创建一个新的项目:http://192.168.1.2

2)在仓库管理新建一个目标

3)在复制管理新建一个规则

因为我们做的是基于双主的 Harbor 高可用,所以需要在备用的 Harbor 上也执行下上面的步骤。

5.验证

1)在 Docker 上配置 Harbor 仓库

[root@Harbor-01 ~]# cat <<END > /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://ipbtg5l0.mirror.aliyuncs.com"
    ],
    "insecure-registries": [
        "http://harbor.tianya.com:5000"
    ]
}
END
[root@Harbor-01 ~]# systemctl daemon-reload && systemctl restart docker
[root@Harbor-01 ~]# docker login http://harbor.tianya.com:5000
Username: admin
Password: Harbor12345

2)验证推送

[root@Harbor-01 ~]# docker pull nginx:1.18.0
[root@Harbor-01 ~]# docker tag nginx:1.18.0 harbor.tianya.com:5000/kubernetes/nginx:1.18.0
[root@Harbor-01 ~]# docker push harbor.tianya.com:5000/kubernetes/nginx:1.18.0

3)验证高可用

[root@Harbor-01 ~]# cd harbor/
[root@Harbor-01 ~]# docker-compose down												# 关闭 Harbor
[root@Harbor-02 ~]# docker pull harbor.tianya.com:5000/kubernetes/nginx:1.18.0

以上就是Harbor高可用配置及仓库使用介绍的详细内容,更多关于Harbor仓库配置使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解基于Harbor搭建Docker私有镜像仓库

    什么是 Harbor? 第一次使用这个的时候是刚进公司处理的第一个任务的时候,发现 Harbor 就是一个用于存储和分发 Docker 镜像的企业级Registry 服务器. 网上找到一个 Harbor 的架构图: Harbor 是 VMware 公司开源的企业级 DockerRegistry 项目,项目地址为 https://github.com/vmware/harbor.其目标是帮助用户迅速搭建一个企业级的 Docker registry 服务.它以 Docker 公司开源的 regist

  • 基于Harbor构建docker私有仓库的方法

    目录 一.harbor简介 一.harbor构建私有仓库 三.维护管理Harbor 四.创建Harbor用户 一.harbor简介 基于镜像的复制策略:支持LDAP/AD域,通过VPN连接域使用:图像删除和垃圾收集:图像UI,方便:审计,此功能使用较少,一般企业中用ELK收集.分析日志:RESTful API 一.harbor构建私有仓库 1.上传dock-compose,并设置权限 [root@harbor ~]# cd /usr/local/bin/ [root@harbor bin]# r

  • Harbor搭建Docker私有仓库的实现方法

    1 开源的仓库管理工具Harbor Harbor是一个由CNCF托管的开源的Docker镜像仓库管理工具,我们可以通过它快速的建立起自己的私有仓库.当然,搭建私有仓库的选择很多,如Docker官方提供的registry镜像或者Nexus等.但Harbor不失为一种不错的选择. 2 安装 Harbor的安装方式也很多,如通过命令行安装.Helm安装等,本文演示通过命令行的脚本安装. 2.1 安装Docker和Docker-compose 首先Docker是要安装的,Harbor是通过一堆容器来启动

  • harbor可视化私有镜像仓库环境及服务部署示例

    目录 harbor 简介 Harbor 和 Registry 的比较 harbor 案例演示 环境准备 服务部署 上传本地镜像至harbor 拉去 harbor 上的 tomcat 镜像至本地 harbor 简介 在实际生产运维中,往往需要把镜像发布到几十.上百或更多的节点上.这时单台 Docker 主机上镜像已无法满足,项目越来越多,镜像越来越多,都放到一台 Docker 主机上是不行的,我们需要一个镜像Git仓库一样系统来统一管理镜像.这里介绍的是一个企业级镜像仓库Harbor,将作为我们容

  • Harbor高可用配置及仓库使用介绍

    目录 一.Harbor 简介 1.Harbor 功能介绍 2.Harbor 高可用方式 二.Harbor 仓库使用介绍 1.安装 Docker 2.安装 Docker-Compose 3.配置 Harbor 4.Harbor 高可用配置 1)安装 Nginx 服务 2)修改 Nginx 配置文件 3)Harbor 界面配置 5.验证 一.Harbor 简介 Harbor 是由 VMware 公司使用 Go 语言开发,主要就是用于存放镜像使用,同时我们还可以通过 Web 界面来对存放的镜像进行管理

  • SpringCloud高可用配置中心Config详解

    目录 前言 源码 环境 开发工具 正文 commons 工程 commons 工程 - POM 文件 commons 工程 - 项目结构 配置文件 service 工程 registry-service(注册中心) registry-service - POM 文件 registry-service - application.yml配置文件 registry-service - 启动类 registry-server - 启动项目 server(获取远程的配置信息) server- POM 文

  • MySQL之MHA高可用配置及故障切换实现详细部署步骤

    一.MHA介绍 (一).什么是MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件. MHA 的出现就是解决MySQL 单点的问题. MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作. MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用. (二).MHA 的组成 MHA Node(数据节点) MHA Node 运行在每台 MySQL 服务器上. MHA Manager(管理节点

  • Redis Sentinel实现高可用配置的详细步骤

    一般情况下yum安装redis的启动目录在:/usr/sbin :配置目录在/etc/redis/在其目录下会有默认的redis.conf和redis-sentinel.conf redis高可用配置: 配置哨兵(redis-sentinel),我的所有配置文件都放在/etc/redis-cluster/目录下 1.创建redis-sentinel_26379.conf,主要内容如下: #基本配置 port 26379 daemonize yes logfile "/var/log/redis/

  • SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码

    一.简介 当要将配置中心部署到生产环境中时,与服务注册中心一样,我们也希望它是一个高可用的应用.Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式. 传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护.而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可, 就如下图所示的结构. 服

  • docker的高可用配置详解

    Docker Compose Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr).Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名.一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖.一个服务当中可包括多个容器实例,Docker Compose 并没有解决负载均衡的问题

  • seata docker 高可用部署的详细介绍

    版本 1.4.2 官方文档 dockerhub 启动 通过环境变量SEATA_CONFIG_NAME指定配置文件位置/root/seata-config/registry.conf docker run --name seata-server \ -p 8091:8091 \ -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \ -v /User/seata/config:/root/seata-config \ seataio/seat

  • centos7搭建hadoop2.10高可用(HA)

    本篇介绍在centos7中搭建hadoop2.10高可用集群,首先准备6台机器:2台nn(namenode);4台dn(datanode):3台jns(journalnodes) IP hostname 进程 192.168.30.141 s141 nn1(namenode),zkfc(DFSZKFailoverController),zk(QuorumPeerMain) 192.168.30.142 s142 dn(datanode), jn(journalnode),zk(QuorumPee

  • MySQL系列之十四 MySQL的高可用实现

    一.MHA ​对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库. 1.MHA工作原理 从宕机崩溃的master保存二进制日志事件(binlog events) 识别含有最新更新的slave 应用差异的中继日志(relay log)到其他的slave 应用从

  • 带你了解HDFS的Namenode 高可用机制

    目录 HDFS NameNode 高可用 Hadoop Namenode 高可用架构 Namenode 高可用的实现 隔离(Fencing) QJM共享存储 HDFS NameNode 高可用 在 Hadoop 2.0.0 之前,一个集群只有一个Namenode,这将面临单点故障问题.如果 Namenode 机器挂掉了,整个集群就用不了了.只有重启 Namenode ,才能恢复集群.另外正常计划维护集群的时候,还必须先停用整个集群,这样没办法达到 7 * 24小时可用状态.Hadoop 2.0

随机推荐