2020年,为什么容器技术这么火?

2020-11-23 11:52:59 浏览数 (1)

点击“开发者技术前线”,选择“星标?”

让一部分开发者看到未来

开源云原生制品仓库 Harbor 2.1 上月正式发布了!关于 Harbor 你了解多少呢?

容器技术这些年

近些年来,容器技术迅速席卷全球,颠覆了应用的开发、交付和运行模式,在云计算、互联网等领域得到了广泛应用。其实,容器技术在约二十年前就出现了,但直到 2013 年Docker推出之后才遍地开花,毫不夸张地说,Docker公司率先点燃了容器技术的火焰,拉开了云原生应用变革的帷幕,促进容器生态圈一日千里地发展。2015年CNCF的成立促进了容器技术在云原生领域的应用,降低用户开发云原生应用的门槛。CNCF成立之初只有一个开源项目,就是后来大名鼎鼎的Kubernetes。到了2018年,Kubernetes已成为容器编排领域事实上的标准,并成为首个CNCF的毕业(graduated)项目。2020年8月,CNCF旗下的开源项目增加到了63个,包括原创于中国的Harbor等项目。

从容器的发展历程可以看到,容器在出现的早期并没有得到人们的广泛关注,主要原因是当时开放的云计算环境还没出现或者未成为主流。随着IaaS、PaaS和SaaS等云平台逐渐成熟,用户对云端应用开发、部署和运维的效率不断重视,重新发掘了容器的价值,最终促成了容器技术的盛行。

关于Harbor Registry

Harbor Registry(又称Harbor云原生制品仓库或Harbor镜像仓库)由VMware公司中国研发中心云原生实验室原创,并于2016年3月开源。Harbor在Docker Registry的基础上增加了企业用户必需的权限控制、镜像签名、安全漏洞扫描和远程复制等重要功能,还提供了图形管理界面及面向国内用户的中文支持,开源后迅速在中国开发者和用户社区流行,成为中国云原生用户的主流容器镜像仓库。

2018年7月,VMware捐赠Harbor给CNCF,使Harbor成为社区共同维护的开源项目,也是首个源自中国的CNCF项目。在加入CNCF之后,Harbor融合到全球的云原生社区中,众多的合作伙伴、用户和开发者都参与了Harbor项目的贡献,数以千计的用户在生产系统中部署和使用Harbor,Harbor每个月的下载量超过3万次。2020年6月,Harbor成为首个中国原创的CNCF毕业项目。

Harbor是为满足企业安全合规的需求而设计的,旨在提供安全和可信的云原生制品管理,支持镜像签名和内容扫描,确保制品管理的合规性、高效性和互操作性。Harbor的功能主要包括四大类:多用户的管控(基于角色访问控制和项目隔离)、镜像管理策略(存储配额、制品保留、漏洞扫描、来源签名、不可变制品、垃圾回收等)、安全与合规(身份认证、扫描和CVE例外规则等)和互操作性(Webhook、内容远程复制、可插拔扫描器、REST API、机器人账号等)。

Harbor是完全开源的软件项目,也用到了许多其他开源项目,如PostgreSQL、Redis、Docker Distribution等,体现了“从社区中来,到社区中去”的思想。经过数年的发展,在社区用户和开发者提供的需求、反馈和贡献的基础上,功能已经趋于丰富和完善,可以和不同的系统对接、集成。如图,Harbor能够使用主流的文件系统和对象存储,认证方式支持LDAP/AD和OIDC,提供可灵活接入外置镜像扫描器的接口,可以与主流的公有或私有Registry服务同步镜像等,支持多种云原生系统的客户端,如Docker/Notary、kubelet、Helm和ORAS OCI等。

Harbor 2.0

Harbor 2.0是一个包含了较多改进功能的大版本,其中最重要的功能是支持遵循OCI镜像规范和分发规范的制品,使Harbor不仅可以存储容器镜像,还可以存储Helm Chart、CNAB等云原生制品。这些制品和镜像一样,都能够设置访问权限和远程复制策略,并在界面上统一展示,大大方便了用户,也拓宽了 Harbor的使用范围。因此,Harbor已经从镜像仓库发展成为通用的云原生制品仓库。

随着功能日益完整,Harbor的应用场景也越来越灵活,归纳起来有以下几种。

(1)持续集成和持续发布。持续集成和持续发布是容器最早的使用场景之一,应用的源代码经过自动化流水线编译和测试后,构建成容器镜像存入Harbor,镜像再被发布到生产环境或者其他环境下,Harbor起到了连接开发与生产环节的作用。

(2)在组织内部统一镜像源。在企业等组织内部对镜像的来源和安全性有一定要求和规则,如果内部用户从公网下载任意镜像并在企业内部运行,则将引入各种安全隐患,如病毒、系统漏洞等。为此,企业会在内部统一设立标准镜像源,存放经过验证或者测试过的镜像让用户使用。采用 Harbor 是较好的选择,可对镜像设立访问权限,并按照项目组加以隔离。同时,可以对镜像定期扫描,在发现安全漏洞时拒绝用户下载并及时打补丁。管理员还可以对镜像进行数字签名,实现来源校验。

(3)镜像跨系统传输。容器镜像的一个重要特性是不可更改(immutability),即镜像封装了应用的运行环境,可以在其他系统中无差别地重现该环境。这个特性决定了容器镜像必须具有可移动性,能在不同的环境下转移。Harbor的远程内容复制恰到好处地提供了容器迁移的能力,无论是在用户不同的数据中心之间,还是在公有云和私有云之间,无论是局域网还是广域网,Harbor都能够实现不同系统的镜像同步,并且具备出错重试的功能,大大提高了运维效率。

(4)制品备份。容器镜像等制品的备份是从跨系统镜像传输衍生而来的用例,主要是把 Harbor 的镜像等制品复制到其他系统中,保留一个或多个副本。在需要时,可把副本数据迁回原Harbor实例,达到恢复的目的。

(5)制品本地访问。镜像等制品的本地访问也是从跨系统镜像传输衍生而来的用例,Harbor可以把镜像等制品同时远程复制到若干个地点,如从北京的数据中心分别复制到上海、广州和深圳的数据中心,这样不同地理位置的用户可以就近获取制品数据,缩短了下载时间。

(6)数据存储。在Harbor 2.0支持OCI规范之后,更多的应用都可存放非镜像数据到Harbor中。比如,人工智能的模型数据和训练数据、边缘计算的设备介质等。这些数据被存放到Harbor后,最大的好处就是能够自动获得内容复制、权限控制等功能,无须另行开发类似的功能。

0 人点赞