写点什么

52 K8S 之 Harbor 项目

  • 2021 年 12 月 22 日
  • 本文字数:1197 字

    阅读完需:约 4 分钟

52 K8S之Harbor项目

Chart 本质是描述一组 Kubernetes 资源配置的文件集合,它既能部署小到单个资源的简单应用,例如一个 memcached Pod,又能部署大型的复杂应用,例如由 HTTP 服务器、数据库服务器、缓存服务器和应用程序服务器等共同组成的 Web 应用栈,甚至是 Istio 这样的微服务网络系统等。从物理的角度来描述,Chart 就是一个遵循特定规范的目录结构,它能够打包成一个可用于部署的版本化归档文件。


Harbor 项目是用于存储和分发容器镜像的企业级 Registry(注册中心)开源解决方案,它构建在 Docker Registry 项目(后来称为 Docker Distribution)之上,为其添加了认证、授权、风险扫描等功能组件,能够满足生产环境的功能要求,其成熟度已得到 CNCF 社区及用户的认可。而自 2.0 版开始,Harbor 正式成为完全符合 OCI 规范的云原生工件 Registry,支持托管容器镜像、清单列表、Helm Chart、CNAB(Cloud Native Application Bundles)和 OPA(Open Policy Agent)等所有遵循 OCI 规范的工件,并允许在这些工件上施加拉取、推送、删除打标、复制和安全扫描等管理操作。

从系统构成上来说,Harbor 2.0 主要包括基础服务和数据存储两类组件,其中基础服务类组件主要包括以下几个。

核心组件(Core):Harbor 的核心服务,主要包括 API Server、APIControllers、Config Manager、Namespace Manager、Quota Manager、ChartController、Signature Manager、Retention Manager、Notification Manager、Replication Controller、Scan Manager、OCI Artifact Manager、RegistryDriver 和 Traffic Proxy 等,它们的功能几乎都能见名知义。

Registry:第三方项目,负责提供注册中心服务,用于存储、管理 Docker 镜像并响应客户端的管理请求。

Chart Museum:第三方项目,负责 Helm Chart 的存储、管理,并响应客户端的管理请求。

Notary:第三方项目,它基于健壮的数字签名机制为数字内容提供了高度安全的可信机制,是 TUF(The Update Framework)规范的开源实现,确保通过网络发布和接收到内容的有效性与完整性。

Job Service:通用作业队列,其他组件或服务可以通过静态 API 接口同时提交、运行异步任务。

GC Collector:垃圾收集器,负责设定 GC 计划,以及启动和跟踪 GC 进度。

Log Collector:日志收集器,负责将其他组件的日志统一收集到指定的位置以便进行审计。

Web Portal:Harbor 的 Web GUI,用于向用户提供基于 Web 的图形用户接口。

Kubernetes 上的 Ingress 或者自主管理的代理服务器:提供 API 路由功能,所有组件均位于该代理服务器之后。


数据访问层上相应的各服务中,由 Redis 提供的键值存储系统为 Harbor 提供通用缓存层,也负责为 Job Service 存储作业元数据;关系型数据库主要负责存储 Harbor 系统模型中的各类逻辑组件的元数据,该类组件主要包括名称空间(也称为项目)、用户、角色、复制策略、标签保留策略、Chart 和镜像等;本地或远程的数据存储服务主要为镜像或 Helm Chart 提供持久存储服务,它支持本地文件系统、S3、GCS、Azure、OSS 和 Swift 等。


发布于: 3 小时前阅读数: 10
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
52 K8S之Harbor项目