前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个优秀的镜像仓库是什么样的?

一个优秀的镜像仓库是什么样的?

作者头像
魏新宇
发布2018-06-25 15:08:03
2.3K0
发布2018-06-25 15:08:03
举报

一、镜像仓库的类型

常见的镜像仓库有三种:

1.Container Registry

Container Registry是一个应用程序,用于上传(推送)和下载(拉)容器图像。

从历史上看,注册管理机构规范完全由Docker定义,最近通过OCI分布规范独立完成。

目前版本的Openshift内部使用的是docker registry V2,作为bulid config成功以后的镜像存放位置。

2.Enterprise Registry

Enterprise Registry,它提供了更多适用于企业环境的附加功能。

这些功能的例子包括:

  • 高级访问控制管理(RBAC)
  • 支持各种认证系统
  • 漏洞扫描
  • image签名验证
  • HA和灾备

3.托管Registry

托管Registry是作为公共互联网上的服务提供的多租户注册表。 托管注册机构通常是自助服务的,并根据私人存储库的数量定价。

最受欢迎的两个是Quay.io和DockerHub。

今天,我们会介绍quay.io

二、Quay从哪来到哪去?

Quay.io是第一个使用私有存储库的托管Registry。

CoreOS于2014年收购了Quay,以推出首个Enterprise Registry

今天,Quay.io托管服务每天提供数十TB的容器图像

今天,许多Quay Enterprise客户比Quay.io本身运行更大的部署

2018年1月30日,RedHat宣布已经签署了收购CoreOS。quay随之被收入囊中。

Quay会如何与Openshift整合呢?

OpenShift容器平台内部注册表,默认情况下已部署为OpenShift群集的一部分

为标准OpenShift用例提供足够的注册表功能。当然,OpenShift客户还可以继续使用来自ISV合作伙伴的第三方注册解决方案,如JFrog Artifactory和Sonatype Nexus。

目前业内有不少容器Registry,在这里面,quay无论功能还是性能,都是很强大的。

一个优秀的容器镜像仓库应该什么样子呢?应该具备以下的企业及功能。

三、Quay的企业级功能

  • 异地复制
  • 高可用性和可扩展性
  • 安全扫描
  • 自动构建触发器
  • 时间机器image回滚(基于build版本的回退)
  • 细粒度的访问控制
  • 详细的日志和审计
  • 自动连续垃圾收集,无需停机
  • 与多个存储后端集成(ceph等)
  • 支持多种身份提供商:LDAP,OAuth,OpenStack Keystone等。
  • 加密的CLI密码
  • 洪流分布
  • 容器和应用程序注册
  • 与Quay.io保持一致的UI和代码库

镜像扫描:

自动构建:

通过集成到GitHub,Bitbucket等,自动构建存储库推送操作上的映像。随着代码(GitHub,Bitbucket,GitLab和Git)中的推送操作发生,Quay将自动构建新版本的应用程序

image回滚:

Time Machine提供图像回滚,查看标签历史记录,快速轻松地切换图像构建。

查看image build历史记录,并可以选择某个版本的构建进行回退;

细颗粒度的RBAC配置:

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

事件和使用日志

  • 针对存储库捕获所有事件
  • Pull, push events
  • 权限更改
  • build事件
  • 标签更改

自动压缩image:

将多个docker layer压缩成一个,以创建一个layer更少的image:

自动进行K8S应用部署:

$ helm registry install quay.io/jzelinskie/nginx

事件通知

发布电子邮件、quay通知、webhook发布、flowdock,hipchat,基于Quay Enterprise内部各种事件的通知

三、基本操作展现

本地部署或者使用云上的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等技术认证。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大魏分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档