作者:Alex Xu,Harbor贡献者,VMware高级产品经理。文章最初在goharbor.io发表。
https://goharbor.io/blog/harbor-2.0/
我们很高兴地宣布Harbor 2.0的普遍可用性。这个版本使Harbor成为第一个遵循OCI(Open Container Initiative,开放容器倡议)的开源注册中心,能够存储大量云原生工件(artifact),如容器镜像、Helm chart、OPA、Singularity等等。
如果你有兴趣了解更多关于Harbor 2.0的内容,请今天就报名参加CNCF Project Webinar,时间是2020年5月28日上午10点(PDT)。
https://www.cncf.io/webinars/cncf-project-webinar-harbor-the-trusted-cloud-native-registry-for-kubernetes/
让我们首先深入了解什么是OCI,以及Harbor 2.0的发布对社区意味着什么。
OCI是一个久经考验的行业标准,它定义了关于格式、运行时和云原生工件分发的规范。大多数用户都熟悉一些比较流行的符合OCI的工件,比如docker镜像和Helm chart。OCI规范有助于将工件作者和注册中心供应商聚集在一个共同的标准。作为一名开发人员,我现在可以为我的工件采用OCI标准,并且确信我可以使用符合OCI的注册表,比如Harbor,而不需要做任何更改。
在高层次上,OCI提出了两个规范:镜像规范和运行时规范。镜像规范定义了镜像的外观,包括归档格式和内容,包括清单、(可选的)镜像索引、文件系统层的序号集和配置文件。然后,OCI运行时接受该配置并将其转换为一个可执行文件,根据运行时规范使用文件系统包。换句话说,镜像规范促进了用于构建、传输和准备镜像以运行的互操作工具的创建,而运行时规范则规定了容器的配置、执行环境和生命周期。
在Harbor中支持符合OCI的镜像意味着支持其API集和解释关键信息。这些信息包括OCI模式和媒体类型,它们用于确定哪些内容可以推送到Harbor上,哪些内容不能推送到Harbor上。例如,manifest.config.mediaType字段对于在注册表中标识自身至关重要,而layer.mediaType定义了要存储并持久保存在注册表中的文件系统层,而无需注册表必须先拉出并解剖这些层。
例如,Helm chart现在可以通过Helm 3推送到Harbor。Helm chart不再单独存放在ChartMuseum中,而是与容器镜像一起存储在artifacts下。在下面的图中,我们看到一个容器镜像、一个Helm chart和一个托管在同一个项目中的云原生应用程序包(CNAB)。
Harbor从遵从OCI中获得的另一个关键好处是:它现在完全能够处理OCI索引,这是一种表示镜像清单打包的高级清单,非常适合多架构场景。想象一下,不需要指定操作系统和平台,而是完全依赖于客户端工具来确保获取正确版本的镜像。这种索引结构被CNAB之类的构件广泛利用,用于管理与云无感的分布式应用程序。
尽管Harbor现在已经兼容了OCI,但现有用户不必担心;所有熟悉的操作和Harbor的主要优点都可以很好地转化为OCI。你可以推、拉、删除、重新标记、复制、扫描和签署索引,就像你能够对镜像所做的那样。漏洞扫描和项目策略是增强安全性和遵从性的关键因素,现在已经修改为使用OCI工件。我们还提供了一个新的关键功能:现在你可以删除一个镜像标记,而不需要删除底层清单和所有其他相关的镜像标记。你还可以查看未标记的镜像,并可以选择将它们排除在垃圾收集之外。
由于工件类型无疑会有变化,所以重要的是,Harbor要存在于任何特定的容器格式之外,并且要足够灵活,能够根据社区需求和遵循公共标准来使用和丢弃任何工件类型。
将Aqua Trivy作为默认扫描程序
这个版本也用Aqua的Trivy代替Clair作为默认的镜像扫描器。Trivy将容器镜像扫描提高到比以前更高的可用性和性能级别。自从在Harbor v1.10中通过可插入扫描框架增加了对Trivy的支持以来,我们收到了非常好的反馈,并且在Harbor社区中获得了越来越多的关注,这使得Trivy成为了Harbor的完美补充。Trivy在扫描不同的操作系统和应用程序包管理器方面具有广泛的覆盖范围,并且易于集成到CI/CD系统中。它还可以进行深度扫描,找出流行发行版中的漏洞,比如CentOS、Photon OS、Debian和Ubuntu等。在Harbor中,Clair还继续作为内置的扫描器受到支持。事实上,在升级到Harbor v2.0期间,使用Clair作为扫描程序的项目将不会受到影响;Trivy仅于新安装设置为默认扫描程序。
显著的特性
我们听取了用户的反馈,并在改进Harbor机器人帐号的设计方面取得了长足的进步,这种设计反映了常见的使用模式。Harbor 2.0引入了在每个机器人帐户上设置过期日期的功能,而不是系统范围的设置。在未来的版本中,我们将授予机器人帐号针对一个或多个项目的能力,并将为Kubernetes部署提供更好的凭据处理。
Harbor 2.0中还新增了为核心Harbor服务配置SSL的功能。配置完成后,内部Harbor服务将加密它们的service-to-service通信。该特性增强了Harbor的安全态势,降低了中间人攻击的可能性。
Webhook现在可以单独触发,并与Slack集成。有些用户可能不希望为每个受支持的webhook操作接收回调,因此此更新使用户能够在项目级别配置要接收哪个webhook以及首选的回调方法,HTTP或Slack。
你是否也注意到了更新后的Harbor UI中全新的dark模式?下载Harbor v2.0并尝试一下吧!
希望Harbor 2.0能够引起你的注意。来参加CNCF于2020年5月28日上午10点(PDT)的Harbor v2.0的网络研讨会,在这里注册。
鸣谢社区!
对于Harbor v2.0的发布,我们非常感谢Harbor维护团队
关于Harbor
Harbor是一个开源的、受信任的云原生注册表项目,用于存储、签署和扫描容器镜像、Helm chart和任何其他符合OCI的工件。Harbor扩展了开源的Docker分布通过添加身份验证和访问控制的关键企业级特性(LDAP、AD以及OIDC支持RBAC),双向复制和其他第三方注册中心,先进的垃圾收集,真实性和出处功能通过第三方镜像扫描和签署解决方案。Harbor支持Docker Compose和Kubernetes,部署时间不到30分钟。Harbor可以通过一个web控制台进行完全管理,并提供了一组丰富的API,可以使用Swagger进行管理。
与Harbor社区合作!
Twitter上获取更新(@project_harbor)
与我们在Slack上聊天(CNCF Slack上的#harbor和#harbor-dev):https://slack.cncf.io/
与我们在GitHub上合作:github.com/goharbor/harbor
参加社区会议:https://github.com/goharbor/community/wiki/Harbor-Community-Meetings
Alex Xu
Harbor贡献者
VMware高级产品经理
@xaleeks
点击【阅读原文】阅读英文原文。
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。