(十九)VMware Harbor 详细介绍
一 . 简介
Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。
用于部署Harbor的Docker Compose模板位于 /Deployer/docker-compose.yml,由5个容器组成:
- Proxy:由Nginx 服务器构成的反向代理。
- Registry:由Docker官方的开源registry镜像构成的容器实例。
- UI:即架构中的core services, 构成此容器的代码是Harbor项目的主体。
- MySQL:由官方MySQL镜像构成的数据库容器。
- Log:运行着rsyslogd的容器,通过log-driver的形式收集其他容器的日志。
这几个容器通过Docker link的形式连接在一起,在容器之间通过容器名字互相访问。对终端用户而言,只需要暴露proxy (即Nginx)的服务端口。
二. Harbor特性
基于角色控制
用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限。
基于镜像的复制策略
镜像可以在多个Harbor实例之间进行复制。
支持LDAP
Harbor的用户授权可以使用已经存在LDAP用户。
镜像删除 & 垃圾回收
Image可以被删除并且回收Image占用的空间。
用户UI
用户可以轻松的浏览、搜索镜像仓库以及对项目进行管理。
镜像删除 & 垃圾回收
绝大部分的用户操作API, 方便用户对系统进行扩展。
轻松的部署功能
Harbor提供了online、offline安装,除此之外还提供了virtualappliance安装。
三. Harbor认证过程
1、docker daemon 从 docker registry拉取镜像。2、如果docker registry需要进行授权时,registry将会返回401 Unauthorized响应,同时在响应中包含了docker client如何进行认证的信息。3、docker client根据registry返回的信息,向auth server发送请求获取认证token。4、auth server则根据自己的业务实现去验证提交的用户信息是否存符合业务要求。5、用户数据仓库返回用户的相关信息。6、auth server将会根据查询的用户信息,生成token令牌,以及当前用户所具有的相关权限信息 。上述就是完整的授权过程.当用户完成上述过程以后便可以执行相关的pull push操作。认证信息会每次都带在请求头中。
四. Harbor整体架构
五.Harbor认证流程
A、首先,请求被代理容器监听拦截,并跳转到指定的认证服务器。B、 如果认证服务器配置了权限认证,则会返回401。通知docker client在特定的请求中需要带上一个合法的token。而认证的逻辑地址则指向架构图中的core services。C、 当docker client接受到错误code。client就会发送认证请求(带有用户名和密码)到core services进行basic auth认证。D、 当C的请求发送给ngnix以后,ngnix会根据配置的认证地址将带有用户名和密码的请求发送到core serivces。E、 core services获取用户名和密码以后对用户信息进行认证(自己的数据库或者介入LDAP都可以)。成功以后,返回认证成功的信息。
参考:https://blog.csdn.net/jiangshouzhuang/article/details/53267094
转载于:https://www.cnblogs.com/shix0909/p/11116817.html
(十九)VMware Harbor 详细介绍相关推荐
- Hadoop系列 (九):Sqoop详细介绍
文章目录 Hadoop系列文章 Sqoop简介 Sqoop架构 Sqoop数据导入 Sqoop数据导出 Sqoop安装部署 版本介绍 前提环境 下载 安装配置 Sqoop的使用 构建测试数据 将MyS ...
- 郑州计算机技校哪个学校好,郑州十大技校排名 详细介绍
郑州的技校有哪些呢?哪几所学校比较好?想必大家都很想了解,下面将为您详细介绍,仅供参考. 郑州技校排名前十 郑州商业技师学院 河南省郑州水利学校 郑州国防科技学校 登封市中等专业学校 郑州市金融学校 ...
- Hyperledger系列(十二)MSP详细介绍
简介 MSP的作用,不仅仅在于列出谁是网络参与者或Channel成员. MSP可以确定,成员在MSP所代表的Org(trust domain)(例如,MSP管理员,组织细分成员)中扮演的特定角色. 它 ...
- BBB学习(十九):cape介绍(二)cape管理简介
文章目录 一 前言 二 介绍及操作 2.1 cape的概念 2.2 查看当前已加载dtbo 2.3 手动加载dtbo 2.4 开机自动加载默认dtbo 2.5 根据实际cape加载dtbo 2.5.1 ...
- Python中最常用十大图像处理库详细介绍
本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分.然而,若想其有所应用,我们需要对这些图像进行处理.图像处理是分析和操纵数字图像的过程,旨 ...
- 第五十九课 Hadoop入门介绍
Hadoop入门 Hadoop入门 Hadoop 2.0介绍 转载于:https://blog.51cto.com/liwenjia/1881373
- Django笔记十九之manager用法介绍
首先介绍一下 manager 的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用 manager 来实现. 比如我们在前面的笔记中介绍的 model 的 create().update ...
- 第四十九,反射基本介绍
反射最初理解1 通过字符串的形式,导入模块2 我们前面讲到的导入模块,都是import 模块名称 如:import mk 这种方式导入的3 #!/usr/bin/env python # -*- ...
- iOS开发笔记之七十九——读写线程锁介绍(一)
一.读写锁 在多线程环境下,我们经常会遇到读写同步的问题.常见的做法就是将读写做成互斥操作,但是这样会降低读写性能.通常情况下我们希望读操作之间是不互斥的,这个时候就需要用到读写锁了.简单来说,读写锁 ...
最新文章
- 二分图-匈牙利算法模板
- 阿里云一键建站产品,阿里云自营建站-中小企业建站首选
- java sqlserver 死锁_sqlserver数据库发生死锁处理
- 7个习惯可以改变一个人和他的一生
- 无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
- cmd 日志刷新卡屏
- linux+模块与设备关系,linux内核设计与实现读书笔记——设备和模块
- 浏览器窗口可视区域大小相关方法
- 使用PublishSetting快速在Powershell中登录Azure
- 「沙龙回顾」从技术演进角度看猫眼电影
- epoch如何设置,在Keras中,steps_per_epoch和纪元的设置如何影响训练结果?
- 小学语文经典好词好句好段
- OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
- 配置tomcat使用https方式连接,同时也可以使用http方式连接
- sqlite自动转mysql,Sqlite数据库转换为mysql工具SqliteToMysql使用教程
- 海思3519A uboot开机画面
- 计算机程序设计员技能试题,计算机程序设计员理论试题库
- 用Java整合Clamav病毒库检测病毒
- 利用计算机课堂导入的好处,多媒体教学的好处
- 服务器没有响应客户端,socket编程某些服务器对某些客户端没有响应的问题!!...