• Docker系列-6.企业级Registry镜像仓库


    Docker系列-6.企业级Registry镜像仓库

    企业级镜像仓库方案

    常见的几种docker registry企业级实现,包括Harbor,Quay Enterprise以及Nexus等。

    相对于企业级Registry镜像仓库,简易的Registry没有考虑的因素有:

    • 缺少UI用户界面

    • 缺少角色的权限控制、用户管理、权限管控、行为审计等安全功能

    • 无法和企业的统一登录或者LDAP对接

    • 缺少对镜像的漏洞扫描等安全防护

    • 缺少对镜像文件生命周期维护功能

    • 缺少镜像其它镜像仓库的能力

    • 缺少高效的镜像文件分发能力,如,使用BT协议进行分发

    • 缺少镜像仓库的运行时监控

    • 缺少企业级的服务支持,如, bug fix、安全漏洞补丁的通知、产品升级等

    • 不适合大规模容器集群的使用,特别是跨地域的在多个数据中心进行镜像的同步

    Harbor

    Harbor是VMware公司开源的企业级云原生Registry项目, 由中国研发团队开源,包含在vmware tanzu产品中,用来存储、签名并扫描存储工件,能够提供诸如用户管理,访问控制,活动审计,和节点间的复制等一系列高级功能,可以让你迅速的搭建自己的私有镜像仓库。Harbor只能通过docker的方式进行部署,但是Harbor的开源版本并没有与Kubernetes进行深度集成;不能运行在K8S平台上。

    Quay Enterprise

    Quay.io是第一个使用私有存储库的托管镜像仓库。CoreOS于2014年收购了Quay,以推出首个企业级的镜像仓库。2018年CoreOS被Red Hat收购之后,Red Hat也将Quay Enterprise产品开源并持续提供企业级的支持服务。
    Quay Enterprise 也是最早支持 OCI 规范的企业级镜像仓库,与 Kubernetes 集成为 Operator 提供良好的支持,并提供以下的特性:

    • 异地复制

    • 高可用性和可扩展性

    • 安全扫描

    • 自动构建触发器

    • 时间机器image回滚(基于build版本的回退)

    • 细粒度的访问控制

    • 详细的日志和审计

    • 自动连续垃圾收集,无需停机

    • 与多个存储后端集成 (如 ceph 等)

    • 支持多种身份提供商:LDAP,OAuth,OpenStack Keystone等。

    • 加密的CLI密码

    • 洪流分布

    • 容器和应用程序注册

    • 与Quay.io保持一致的UI和代码库

    Nexus3

    在企业中Nexus最初是给 Java用的,大家把一些工具包放入Nexus中,后来慢慢发展,可以作为众多软件pipy、yum的仓库,最新版本 Nexus3.x 全面支持 Docker 的私有镜像。所以使用 Nexus3.x 一个软件来统一管理 Docker , Maven , Yum , PyPI 也是一个明智的选择。Nexus支持传统和容器两种方式部署。

    总结

    它们之间的各方面对比如下表所示:

    对比项 Harbor Quay Nexus
    语言 Golang Python Java
    部署方式 docker容器 docker容器 docker容器+传统方式
    用户管理 支持 DB、LDAP 和 OIDC 支持 LDAP、Keystone、OIDC、Google 和 GitHub 支持与外部LDAP/AD
    机器人账号 支持 支持 支持
    权限管理 支持 支持 支持
    图形用户界面 支持 支持 支持
    使用文档 非常全面 较少 待定
    镜像安全扫描 支持 支持 可集成Clair
    镜像可信 支持 支持 待定
    镜像清理 支持 支持 支持
    审计日志 支持 支持 待定
    Helm 管理 支持 支持 支持
    多仓库管理 支持 不支持 支持多种不同类型仓库管理
    镜像同步 支持 不支持 支持Proxy代理到另一个镜像库
    代码仓库集成 不支持 支持 支持
    镜像构建 不支持 支持 不支持
    镜像下载 不支持 支持 支持
    通知 支持 Webhook 支持站内信、Webhook、Email、Slack 等 支持

    参考

    常见的几种开源镜像仓库介绍

    私有镜像仓库选型:Harbor VS Quay

  • 相关阅读:
    [转]pycharm的一些快捷键
    Python学习笔记(三十五)—内置模块(4)struct
    Python学习笔记(三十四)—内置模块(3)base64
    Python学习笔记(三十三)常用内置模块(2)collections_namedtuple_deque_defaultdict_OrderedDict_Counter
    Python学习笔记(三十二)常用内建模块(1)— datetime
    Python学习笔记(二十九)ThreadLocal
    使用Java代码发送SMTP邮件
    Python学习笔记(二十五)操作文件和目录
    Python学习笔记(二十)调试
    Python学习笔记(十八)@property
  • 原文地址:https://www.cnblogs.com/elfcafe/p/13551279.html
Copyright © 2020-2023  润新知