红帽宣布发布企业容器仓库开源项目 Quay
The following article is from 大魏分享 Author 魏新宇
前言
今天,红帽推出了 Quay
项目的开源项目,该项目是代表 Red Hat Quay 和 Quay.io 的代码的上游项目。根据 Red Hat 的开源承诺,Project Quay 是新开源的,代表了自 2013 年以来 CoreOS
(现在是 Red Hat
)围绕 Quay 容器注册表进行的多年工作的高潮。
Quay 是市场上第一个私人托管注册中心,于 2013 年底启动。由于专注于开发人员的经验和高度响应的支持以及 image 回滚和零停机垃圾收集等功能,它吸引了越来越多的用户和兴趣。Quay 于 2014 年被 CoreOS 收购,以加强其通过自动化运营保护互联网的使命,而在 CoreOS 收购之后不久,Quay 的本地产品发布了。该产品现在称为 Red Hat Quay
。
Quay 团队还自 2015 年以来创建并整合了 Clair
开源容器安全扫描项目,如今包括 Red Hat 以及社区维护者和用户。
从今天开始,随着 Quay 和 Clair 代码库现在作为 Project Quay
开源,我们相信这些项目将使云原生社区受益,从而降低围绕容器创新的障碍,从而帮助使容器更加安全和可访问。开源是 Red Hat 所信奉的核心部分,我们为达到为开放社区准备项目的时刻而感到自豪。如前所述,开源软件激发了开发人员的精力。并行工作的团队可以超越上一代的大型开发层次结构。我们认为,与开源社区上游合作是一项重要的创新策略。
今天发布的 Project Quay 代表了 Quay 应用程序代码库的开源,包括构建,部署和运行完全开源的 Quay 发行版所需的工具。
Quay 和 Clair 一直以来都是紧密配合的项目。Clair 启用了 Red Hat Quay 中的容器安全扫描功能,该功能可帮助用户识别其容器注册表中的已知漏洞。Clair 是在开源社区中创建的,旨在通过供应商和用户之间的开放工作来提高安全性。考虑到不断增长的安全需求,Clair 也直接内置在 Project Quay 中。
Project Quay 包含一系列在 Apache 2.0 和其他开源许可证下许可的开源软件。它遵循一个带有维护者委员会的开源治理模型。
对于 Red Hat Quay 和 Quay.io 用户,通过开放社区,Red Hat Quay 和 Quay.io 用户可以从上游代码的协作中受益。
展望未来,Quay.io 和 Red Hat Quay 将在 Quay 项目中完成工作,而 Quay.io 将在上游项目中构建并部署。反过来,根据我们的发布流程,红帽码头将继续由红帽进行管理,构建和发布。
Quay 的功能展示,请参考我之前发表的一篇文章。
01
Quay 从哪来到哪去?
Quay 从哪来?
2014 年 8,风头正劲的 coreos 公司宣布收购私有 Docker 仓库服务商 Quay.io
。Quay.io 是一个用于托管私有 Docker 仓库的服务。很多 Docker 的开发者一般会使用公有的 Docker 仓库或者构建自己的私有仓库。而 Quay.io 主要是帮助开发者构建私有仓库。而 CoreOS 的收费的受管的 Linux 服务客户将可以使用基于 Quay.io 提供的 CoreOS Enterprise Registry 服务。
2018 年 1 月 30 日,RedHat 宣布已经签署了收购 CoreOS。quay 随之被收入囊中。
Quay 到哪去?
在过去几年中,许多红帽 OpenShift
客户已经把 CoreOS Quay 用作企业注册表(registry)解决方案。那些需要更全面的企业级注册表功能的客户,现在可以选择从红帽获取 Quay Enterprise(Quay 企业版)和 Quay.io。Quay 包括自动化的地理复制、与 Clair 相集成的安全性扫描,以及用于查看历史记录的图像时间机器,而且能够执行回滚和自动修剪(pruning)等。Quay 现已被添加到红帽产品组合中,既可以作为企业级软件解决方案来提供,也可以作为 Quay.io 中的托管服务来提供。预计在未来的版本中,Quay 将会有更多增强功能,并持续与 OpenShift 相集成。
也就是说,最终 quay 会以 pod 的方式运行到 Openshift 上。就像以后的 istio 一样,成为 Openshift 的一个组件(具体收费方式目前未知)。
02
Quay 目前的部署方式和功能
Quay 有基于 cloud 的方式和基于数据中心内部的方式,前者类似 docker hub
,后者类似 harbor
数据中心内部的安装方式:
基于云的方式:
基于企业数据中心的 Quay 如如下特性:
镜像仓库高可用和灾备:数据中心内部 HA,在数据中心之间同步镜像 支持 CI:当开发人员提交代码以后,自动触发代码构建。 支持安全扫描:自动扫描容器镜像,以查找已知的安全漏洞。 企业认证:集成到现有的身份基础架构:LDAP,Keystone 等 灵活的存储后端:将容器存储在 Amazon S3,OpenStack Swift,Google 云端存储中,或直接存储到磁盘。 记录和审计 审计对于 CI 管道中的所有内容都至关重要。跟踪通过 API 和 UI 执行的操作。
目前红帽 Openshift 有集成镜像仓库 docker registry,而 Quay 刚好可以为 Openshift 提供数据中心内部公共镜像仓库。后续 Quay 会作为一个组件,以 pod 方式运行在 Openshift 上。
如果本地部署 quay,需要做如下步骤:
A supported database (MySQL, Postgres) A Redis instance (for real-time events) The Quay Enterprise image
03
基本操作展现
本地部署或者使用云上的 quay.io 服务,账户登陆以后,首先常见 repository:
可以指定是容器镜像仓库还是应用代码仓库,并且可以指定私有还是共有的:
选择谁可以使用这个 repository:
创建成功,目前是空的:
查看 tag,也是空的:
查看代码构建:
查看日志:
可以进行权限配置:
04
功能展现:源码变更触发自动构建
有一个 web 应用,原始的页面是:
首先配置 webhook:
修改源码:
提交变更:
触发 quay 中的代码自动构建:
过一会,构建成功:
给新的镜像分配 tag:
修改应用的 dc,使用新的 image,触发应用重新构建:
重新构建完毕后,页面变成:
05
功能展现:容器镜像扫描
quay 的镜像安全扫描基于 clair:
Clair 项目是一个开源项目,使 Quay Security Scanner 能够检测 Quay Enterprise 中所有图像的漏洞,并在发现这些问题时通知开发人员。
查看 quay 的镜像扫描结果:
查看漏洞链接的 CVE:
06
功能展现:HA 与异地复制
Quay 配置 HA 的前提是:
Postgres
或MySQL
数据库,具有自动备份和故障转移功能。高可用性分布式存储引擎,如 Amazon S3,Google Cloud Storage,Ceph RADOS 或 Swift。不建议在 HA 设置中使用本地存储和 NFS。 运行在中型机器上的 Redis
服务器。Redis
不需要故障转移或备份。支持 TCP 直通的负载均衡器。 至少有三台适用于集群的中型机器。
配置异地复制后,容器先 push 到本地或者位置最近的 repo。然后 image 将在后台被复制到其他 repo。复制的规则是可配置的。
如果您想系统性理解 OpenShift,现在也是一个非常好的出手时机,由红帽和 AWS 的技术专家合著的《Openshift 在企业云中的实践》正在热卖,点击购买:
云原生是一种信仰 🤘
扫码关注公众号
后台回复◉图谱◉领取史上最强 Kubernetes 知识图谱
点击 "阅读原文" 获取更好的阅读体验!