微信号:david-share

介绍:乐于分享,才有进步.

Quay:Openshift的屠龙宝刀!

2018-06-09 00:03 魏新宇


一、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的一个组件(具体收费方式目前未知)。


二、Quay目前的部署方式和功能


Quay有基于cloud的方式和基于数据中心内部的方式,前者类似docker hub,后者类似harbor数据中心内部的安装方式:

基于云的方式:

基于企业数据中心的Quay如如下特性:


1.镜像仓库高可用和灾备:数据中心内部HA,在数据中心之间同步镜像

2.支持CI:当开发人员提交代码以后,自动触发代码构建。

3.支持安全扫描:自动扫描容器镜像,以查找已知的安全漏洞。

4.企业认证:集成到现有的身份基础架构:LDAP,Keystone等5.灵活的存储后端:将容器存储在Amazon S3,OpenStack Swift,Google云端存储中,或直接存储到磁盘。 6.记录和审计 审计对于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


三、基本操作展现


本地部署或者使用云上的quay.io服务,账户登陆以后,首先常见repository:


可以指定是容器镜像仓库还是应用代码仓库,并且可以指定私有还是共有的:

选择谁可以使用这个repository:


创建成功,目前是空的:

查看tag,也是空的:

查看代码构建,无:

查看日志:

可以进行权限配置:







四、功能展现:源码变更触发自动构建



有一个web应用,原始的页面是:


首先配置webhook:

修改源码:




提交变更:


触发quay中的代码自动构建:


过一会,构建成功:


给新的镜像分配tag:


修改应用的dc,使用新的image,触发应用重新构建:



重新构建完毕后,页面变成:

    



五、功能展现:容器镜像扫描

quay的镜像安全扫描基于clair:

Clair项目是一个开源项目,使Quay Security Scanner能够检测Quay Enterprise中所有图像的漏洞,并在发现这些问题时通知开发人员。


查看quay的镜像扫描结果:

查看漏洞链接的CVE



六、功能展现:HA与异地复制


Quay配置HA的前提是:

  • Postgres或MySQL数据库,具有自动备份和故障转移功能。 

  • 高可用性分布式存储引擎,如Amazon S3,Google Cloud Storage,Ceph RADOS或Swift。 不建议在HA设置中使用本地存储和NFS。

  • 运行在中型机器上的Redis服务器。 Redis不需要故障转移或备份。

  • 支持TCP直通的负载均衡器。

  • 至少有三台适用于集群的中型机器。


配置异地复制后,容器先push到本地或者位置最近的repo。然后image将在后台被复制到其他repo。 复制的规则是可配置的。 



魏新宇

  • "大魏分享"运营者、红帽资深解决方案架构师

  • 专注开源云计算、容器及自动化运维在金融行业的推广

  • 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。

  • 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证。


 
大卫分享 更多文章 终于搞明白了EJB!| 从开发角度看应用架构3:部署一个无状态的session bean 应用服务器到底是个啥?| 从开发角度看应用架构2:对Java EE应用进行打包和部署! 从开发角度看四类企业应用架构1: 通过Maven编译并运行一个Java应用 RedHat Ceph存储——《面向生产环境的Ceph 对象网关指南》 从四个java源码构文件建一个机票预定业务的规则引擎(下篇)
猜您喜欢 TiDB RC1 Release 美国要“封杀”阿里云? PyTips 0x19 - Python 类与元类的深度挖掘 II TensorFlow——岂止于深度学习 为什么要半Soho和无限期休假?