谈谈容器镜像运维

来源:互联网 发布:javascript date 加减 编辑:程序博客网 时间:2024/06/14 07:04

题图摄于犹他州Zion国家公园


(本文发布时,开源镜像仓库Harbor在Github上已获得3043颗星: https://github.com/vmware/harbor 


不久前的 CNUTCon 2017全球运维技术大会上,笔者接受了 InfoQ 的关于容器镜像运维的采访。下面是采访的视频,供大家参考。感谢 InfoQ 录制视频和整理文字,点击“阅读原文”可查看 InfoQ 的原文。欢迎转发给需要的朋友。


问题1: 请谈谈您对高效安全的镜像运维的理解。


答:很多现在做容器的用户,他们很关心的一个问题是怎么样把这个容器的应用跑得好,可能他会想,我是用Kubernetes,还是用Docker Swarm,或者其他的一些技术来跑我的容器应用。


我们觉得这仅仅是在容器运维上面动态的侧面。就是说,把这个运行的平台弄好了之后,还有另外一个侧面就是静态的容器平台,所谓静态的就是这个容器的镜像。通常来说,就是容器除了动态地在内存里面跑的一个容器化的实例之外,它还需要有一个静态的镜像放到存储里。就是说容器动态和静态的结合,才是完整的一个容器平台。所以高效安全的容器镜像的管理,在任何一个企业的运维里面都是非常必要的,应该说,做得好不好,会实际影响到它的效率,以及安全性的一些问题。




问题2: 采用Harbor开源企业级Registry实现高效安全的镜像运维,与其它的Registry项目相比,Harbor有哪些优势?


答:

Harbor这个项目是最早在我们VMware中国研发中心的一个很小的一个副产品,Side Project,这个项目做出来之后,我们在公司内部用了一段时间,觉得效果还不错,去年我们把它开源出来,面向全球的用户让他们去使用,最终效果也非常好。

总结起来,大部分用户对我们 Harbor 项目喜欢的地方,主要有几个:


第一个是说,我们这是开源的一个解决方案,而且是面向企业用户的开源解决方案,用的是 Apache License 2.0,这样的话,基本上谁都可以拿去使用或者修改,没有太多的义务或者约束。

第二点,我们是结合了很多社区里边的反馈信息,提炼出这么一个作品出来,这样使得 Harbor 一诞生的时候,已经非常符合整个用户的需求。

那怎么设计的呢?我们是用了最简单的功能去实现了用户百分之八九十的需求,相对来说它是非常简单的,像用户模型的设计,我们只有一层的设计,其他的 Registry 可能是有很复杂的用户模型,相比起来非常复杂难理解。简单是一个优势。

还有就是我们有些特色的功能,除了标准的 Role-Based Access Control,就是基于角色的访问控制之外,我们还有大家非常喜欢用的 Replication ,就是镜像的复制,是解决了运维中很常见的一类移动镜像问题。传统来说,可能需要用一些脚本,一些软件去做这个事情,我们全部用一个可视化的图形界面去把它有序地管理起来,同时能在出错时自动去重试。有的世界级的银行他们也在用我们的方案,把镜像从一个大洲的数据中心,复制到其他大洲的数据中心里。

第三点,特别对中国用户来说,我们有很多本地化的输入。我们有微信群,那么有几百个用户在给我们提供反馈,所以对我们中国用户来说,可能第一时间可以得到很多适合他们使用需求的定制化功能。而且,我们项目原生支持中文的界面。在容器的项目里面,很少是能原生支持中文的,所以这也是我们广大中国用户非常喜欢 Harbor 的一个原因。




问题3: 在运维环境中,镜像来源验证和镜像漏洞扫描为用户带来哪些价值?HA如何实现?涉及到技术上有哪些难点?


答:

有两个问题在镜像管理工作中是困扰很多企业的,第一个就是说镜像的真实可靠性,或者说镜像来源,因为大家现在知道很多时候你从Docker Hub或者别的地方抓过来的镜像,到底是谁产生的搞不清楚的,或者这个镜像里面有没有带什么漏洞、病毒也不知道,如果冒冒然去使用是个很危险的事情,所以就造成了需要去验证镜像可靠性的需求。


我们使用叫做Content Trust的功能(内容可信任)。主要的原理是,我们在发布镜像时做个签名,这个签名生成的摘要会存在一个 Notary Service 中。其他人去使用这个镜像的时候,先去获取这个摘要,然后再根据 Registry V2 协议 pull by content 的功能去获取镜像。如果是没有签过名的镜像 Registry 是拿不到的,通过这样一种机制,就可以实现这个Content Trust功能。

第二个是镜像扫描,有点像我们平常在电脑上进行病毒扫描,就把全盘的文件扫一遍,发现有没有被病毒感染过的或者有病毒存在的文件。那么在企业跑的镜像里边,这个扫描也是很需要的,就是我的镜像来源可能是不同的地方,那最终到底有没有一些漏洞。我怎么样能发现,需要有一个对镜像里面所有文件进行扫描的功能,然后发现和报警的机制。这部分功能叫做扫描镜像的 vulnerability 的scanning,我们在 Harbor 里集成了CoreOS 的 Clair,可以帮助我们去扫描Harbor里面放的这个镜像。扫描完之后,我们有个很详细的一个报告,会告诉我们这个镜像里面,有多少个Package,这些软件包有多少个是有问题的,严重程度是怎么样的。用户可以决定性地去使用,比如发现严重问题的,我就不允许这个镜像去下载了,如果是很轻微的,可以允许获取镜像。……




Harbor开源项目送 T-Shirt 等纪念品活动

 

Harbor 开源项目至今已一年有余,相信大家都有了自己独到的使用心得和经验,我们为才华横溢的您准备了一寸用武之地——Harbor 开源项目有奖征文活动。提交符合规则文章的用户,都可以获得 Harbor 纪念品 T-Shirt 一件及 Harbor 手机指环一个。大奖包含平板电脑、Kindle和移动硬盘等。点击下面链接参与


Harbor开源项目征文送礼品活动


Harbor相关文章和演示视频

容器镜像之天网恢恢:容器镜像安全漏洞扫描详述和视频

容器镜像之腾挪大法: 镜像远程复制视频演示

容器镜像之明察秋毫:内容信任的原理及演示视频




如果你是 Harbor 的开发者或用户,可申请加入“Harbor开源项目群”交流,入群需要真实身份,并改昵称:姓名@单位。请先关注“亨利笔记”公众号,在公众号后台发送"入群"信息即可。

亨利笔记