• harbor


    一:简介
    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

    镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。

    docker的registry是用本地存储或者s3都是可以的,harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。Harbor的镜像拷贝功能是通过docker registry的API去拷贝,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。
    二:Harbor架构
    在这里插入图片描述
    三:主要组件
    Proxy:对应启动组件nginx。它是一个nginx反向代理,代理Notary client(镜像认证)、Docker client(镜像上传下载等)和浏览器的访问请求(Core Service)给后端的各服务;
    UI(Core Service):对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:
    UI:一个web管理页面ui;
    API:Harbor暴露的API服务;
    Auth:用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现;
    Token服务(上图中未体现):负责根据用户在每个project中的role来为每一个docker push/pull命令issuing一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token。
    Registry:对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token。
    Admin Service:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置;
    Job Sevice:对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log;
    Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起;
    Volnerability Scanning:对应启动组件clair。负责镜像扫描
    Notary:对应启动组件notary。负责镜像认证
    DB:对应启动组件harbor-db,负责存储project、 user、 role、replication、image_scan、access等的metadata数据。
    四:安装

    1、安装python-pip
    yum -y install epel-release
    yum -y install python-pip

    2、安装docker-compose
    pip install docker-compose
    待安装完成后,执行查询版本的命令,即可安装docker-compose
    docker-compose version

    3.安装Harbor
    wget https://storage.googleapis.com/harbor-releases/release-1.4.0/harbor-offline-installer-v1.4.0.tgz
    tar -zxvf harbor-offline-installer-v1.4.0.tgz
    配置文件 harbor.cfg

    此处详情参看 https://blog.csdn.net/dengqiang123456/article/details/86000713

    安装Harbor
    ./install.sh

    可以使用docker-compose来管理Harbor的生命周期。 一些有用的命令列出如下:
    docker-compose ps 查看在这里插入图片描述
    docker-compose stop 停止
    docker-compose start 启动
    docker-compose down 删除,利用./install.sh可以重新安装
    五:验证

    1.碰到的问题

    a. 错误提示
    点击(此处)折叠或打开

    /usr/lib/python2.7/site-packages/requests/init.py:80: RequestsDependencyWarning: urllib3 (1.21.1) or chardet (2.2.1) doesn
    原因:python库中urllib3 (1.21.1) or chardet (2.2.1) 的版本不兼容
    解决办法:
    pip uninstall urllib3
    pip uninstall chardet
    pip install requests

    b.错误提示:“harbor failed to initialize the system: read /etc/adminserver/key: is a directory”
    原因:harbor.cfg中的secretkey_path和docker-compose.yml中的设置不一致

  • 相关阅读:
    idea 界面乱码问题 file was loaded in the wrong enconding:"utf-8"
    svn 下载,安装,创建库,设置用户和用户组,赋权限
    eclipse文件中的乱码问题
    Eclipse安装Spring插件springsource-tool-suite
    vue.js2.0:搭建开发环境及构建项目
    排序List集合中的元素
    Java GC机制和对象Finalize方法的一点总结
    xfire发布的Webservice中Spring注入为空的解决方案
    Http报文格式学习及Get和Post主要区别总结
    [转] tomcat组成及工作原理
  • 原文地址:https://www.cnblogs.com/sea520/p/11418684.html
Copyright © 2020-2023  润新知