首页 > 分享 > 走马观花云原生技术(6):企业级镜像管理Harbor

走马观花云原生技术(6):企业级镜像管理Harbor

使用容器这种轻量级虚拟技术来部署与运营系统,相比过往确实简便很多。而在现在的架构部署中,使用容器应该慢慢成为绝对的主流了。

不过容器这种技术,需要有一个镜像仓储存在。比如Docker官方也是最大的镜像仓储Docker Hub,这个应该没有不知道的。而不同的云服务商,国内比如阿里或腾讯,也都提供了自己的镜像仓储服务。

但是,对企业来说,很多时候,因为内部网络的限制,服务所部署的机器所在的网络环境,不允许去访问什么外网互联网。很多企业有中立区,内网等不同网络区域,还有不同的网络防火墙限制。对于基于容器来部署的系统来说,就需要一个内部镜像仓储存在了。

Harbor是一个开源的企业级镜像管理系统,它为企业提供了一个功能完整,足够安全的镜像管理。它同样是CNCF云原生计算开源项目中已毕业中的一员。

本篇,我将简单的阐述下:

1. 什么场景下应该考虑使用Harbor2. Harbor有哪些独特的特点3. 有哪些类似的可替代项选择

一)

如果面临以下需求,你就需要考虑部署一个私有化镜像中心

• 公司中有许多项目使用了容器技术,在开发与测试过程中需要频繁的执行镜像的上传与拉取更新等操作• 生产环境并未在云上,而是部署在企业私有云或混合云并且基于安全的考虑,对部署的服务环境的网络有严格的安全限制

以上两种场景下,部署一个私有化的镜像中心是非常有必要的。

这个时候,Harbor这样的技术就派上用场了。

二)

任何一个镜像管理服务,都一定包含最核心的能力,那就是:

镜像的上传与拉取

至于在这之上,不同的镜像管理服务提供的功能点就各有不同了。而Harbor功能强大的点就在于,它在提供了核心的能力之上,提供了更强的能力。主要包括:

• 镜像漏洞扫描• 镜像的签名与验证• 多租户管理• 代理能力• 镜像同步• 管理UI• 基于RBAC的角色管理模型

镜像漏洞扫描

Harbor支持对镜像漏洞的扫描,如果你的镜像有安全上的漏洞,它可以及时的发现与提醒你进行修正。在源头上提高了镜像的安全性。

镜像的签名与验证

镜像签名与验证是指,上传镜像后,可以对它进行签名;下载镜像时,可以只允许拉取经过签名的镜像。签名与验证是提高镜像可信度与安全的一个非常重要的措施。

多租户管理

一个中大型企业中,不同组织不同项目可能对镜像管理进行隔离式管理,互不影响。Harbor提供了多租户管理能力,为不同组织,项目团队提供一个隔离的镜像存储环境。

镜像同步

支持不同镜像仓储中的镜像自动同步。包括手动触发同步以及自动同步策略等。

代理能力

很多时候我们会需要到外部一些镜像中心的镜像,比如Docker Hub官方中的很多基础镜像是我们需要的。如果有一种代理能力去访问到这些镜像中心,就会更方便。

Harbor提供了对包括Docker Hub或其它镜像服务的代理能力,你可以通过Harbor来拉取到这些镜像,又不需要破坏公司的网络约束。

管理UI

Harbor提供了完整的管理UI,你可以通过UI就可以管理所有镜像。无须SSH到服务器上命令式管理。

基于RBAC的角色管理模型

有管理UI,那RBAC权限模型应该就是一种必须了吧。好在Harbor也提供了这一整套权限机制。对于大型企业来说,基于RBAC的权限管理能力是一种必须。

可以看到,Harbor是一个非常实用的镜像管理平台,还完全是开源的,确实是非常好的开源技术了。

三)

好,最后说下,除了Harbor,还有哪些替代选择吧。

说起替代选择,那公有云的那些镜像服务就不说了,因为不在同一个频道上,我在这里只描述下与Harbor适合场景相同的,也就是支持私有化部署的镜像管理平台。

主要有:

• Docker Registry• GitLab Container Registry• Nexus as a Container Registry

Docker Registry

好吧,这是Docker hub的官方仓储平台。不过它的功能非常简单与单一,就是提供核心能力,上传与拉取镜像的。除此之外没有其它功能了,甚至连UI都没有。

我一般是在开发/测试环境使用它,因为CI/CD需要频繁的触发镜像构建,上传与拉取操作,如果使用公有云服务,对网络要求非常高,也完全没必要,时间上也比较浪费。

而自己部署一个私有的Docker Registry,速度上都快很多,非常方便

GitLab Container Registry

GitLab也提供了类似的能力,只不过它的功能远远无法与Harbor相比。这很容易理解吧,这只是Gitlab强大功能集中的一个而已。

毕竟Gitlab主要还是为了支持Git,而不是把镜像管理做为核心能力。

Nexus as a Container Registry

大家对Nexus的知晓,更多的可能是它是Maven仓库的私有化平台。其实现在,这个平台也加入了对容器镜像的支持。

虽然从功能上,它肯定没有Harbor这样的专注的平台更强大,但如果你不想部署多个这种玩意,使用它,又兼顾了Maven仓库,又兼顾了Docker镜像,也不失为一种好的选择。

四)

所以,我个人的建议是:

1. 如果你在开发/测试环境中,使用Docker Registry是最优解。2. 如果企业需要一个专业的镜像管理平台,那Harbor当前仍然是最好的选择。3. 如果对镜像管理功能上要求没有非常强大,企业本身又有Nexus或部署了Gitlab,那使用它们就可以了,它们支持做为镜像存储中心。4. 当然,如果你是在云上,就没有必要折腾这些玩意,使用云服务提供的镜像能力是最快最简单的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。

原始发表:2022-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

相关知识

走马观花云原生技术(1):容器引擎containerd
走马观花云原生技术(12):规则管理Open Policy Agent
探索云原生:从理论到实践
走马观花云原生技术(5):日志收集器fluentd
【云原生】云原生技术解析
云原生之旅:从传统架构到容器化服务的演变
知识分享系列二:云原生技术
走马观花云原生技术(15):安全更新规范 TUF
云原生及其技术栈介绍
云原生一站式部署

网址: 走马观花云原生技术(6):企业级镜像管理Harbor https://m.huajiangbk.com/newsview2484506.html

所属分类:花卉
上一篇: Docker[容器管理引擎]
下一篇: 室内植物墙容器浅议现代居住社区中