温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

VMware中Harbor组件的原理是什么

发布时间:2021-08-12 11:09:07 来源:亿速云 阅读:206 作者:Leah 栏目:云计算

VMware中Harbor组件的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

    简易架构图

VMware中Harbor组件的原理是什么

harbor-adminserver   /harbor/start.sh                 Up (healthy)                                                                   
harbor-db            /usr/local/bin/docker-entr ...   Up (healthy)   3306/tcp                                                        
harbor-jobservice    /harbor/start.sh                 Up                                                                             
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514->10514/tcp                                       
harbor-ui            /harbor/start.sh                 Up (healthy)                                                                   
nginx                nginx -g daemon off;             Up (healthy)   0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp
redis                docker-entrypoint.sh redis ...   Up             6379/tcp                                                        
registry             /entrypoint.sh serve /etc/ ...   Up (healthy)   5000/tcp
  1. harbor-adminserver:harbor系统管理接口,可以修改系统配置以及获取系统信息

  2. harbor-db:存储项目的元数据、用户、规则、复制策略等信息

  3. harbor-jobservice:harbor里面主要是为了镜像仓库之前同步使用的

  4. harbor-log:收集其他harbor的日志信息。rsyslogd

  5. harbor-ui:一个用户界面模块,用来管理registry。主要是前端的页面和后端CURD的接口

  6. nginx:harbor的一个反向代理组件,代理registry、ui、token等服务。这个代理会转发harbor web和docker client的各种请求到后端服务上。是个nginx。nginx负责流量转发和安全验证,对外提供的流量都是从nginx中转,它将流量分发到后端的ui和正在docker镜像存储的docker registry

  7. registry:存储docker images的服务,并且提供pull/push服务。harbor需要对image的访问进行访问控制,当client每次进行pull、push的时候,registry都需要client去token服务获取一个可用的token。

  8. redis:存储缓存信息

  9. webhook:当registry中的image状态发生变化的时候去记录更新日志、复制等操作。
    token service:在docker client进行pull/push的时候今天token的发放。

harbor-login

VMware中Harbor组件的原理是什么

a  nginx代理在80端口收到client发来的请求,然后把该请求转发到后端的registry。

b  registry收到请求,因为registry是配置的token-based的认证,所以会直接返回一个401状态码,然后返回一个url,通知client去哪里获取token,也就是token service

c  当docker client收到这个url后,会对这个url发起请求,需要在请求头中植入用户名和密码。

d  当请求到达nginx反向代理后,nginx会把该请求转发至ui服务上,因为ui符合token服务在一个容器里面,token服务会解码请求头中用户名和密码

e  拿到用户名和密码后会和db中的进行对比,如果验证无误,则返回成功,在返回的http请求中包含一个私有key

harbor-push

VMware中Harbor组件的原理是什么

省略了proxy转发这一步
当你登录harbor成功后,docker push就可以使用了。

a  docker client和registry交互,获取到token service的url
b  随后docker client和token service交互,告诉token需要进行push操作
c  token服务查看db,该用户是否有相关的权限来push image,如果有相关权限,则返回一个私有的key
d  docker client拿到token后,会对registry发起push请求,当registry收到请求后,会用自己的公钥解密token,如果验证token是合格的,则开始image传输过程 

附加

    clair

        是 coreos 开源的容器漏洞扫描工具,在容器逐渐普及的今天,容器镜像安全问题日益严重。clair 是目前少数的开源安全扫描工具,主要提供OS(centos,debian,ubuntu等)的软件包脆弱性扫描。clair的可以单机部署也可以部署到k8s上,可以与现有的registry集成。harbor 很好的整合了 clair ,通过简单的UI就可以对上传的镜像扫描,还可以通过每天的定时扫描对所有镜像进行统一扫描,架构如下:

VMware中Harbor组件的原理是什么

关于VMware中Harbor组件的原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI