用了这个工具,Harbor运维轻松搞定!
题图摄于加州蒙特雷港口
注:微信公众号不按照时间排序,请关注公众号“亨利笔记”,并加星标以置顶,以免错过更新。
(本文原文来自CNCF博客,作者为 Harbor 开源项目维护者邹佳,略有删改。)
Harbor 云原生制品仓库是首个中国原创的 CNCF 毕业级开源项目,在国内用户的生产系统中的使用率高达47%。Harbor 项目在6月正式发布了 Operator 1.0.0,对广大用户运维 Harbor 系统是一大福音。
Operator 是打包、部署和管理 Kubernetes 应用程序的一种方法。应用程序一般部署在 Kubernetes 上,可使用 Kubernetes API 和 kubectl 工具进行管理。Harbor Operator 允许用户更好地管理Harbor在 Kubernetes 中的整个生命周期,提升部署和运维能力。
Harbor Operator提供了可深度定制的能力,用户通过配置顶级 CRD HarborCluster,根据实际需要定义和配置自己的 Harbor 组件。下图显示了 Harbor Operator的整体架构。
一个 HarborCluster CR 可以包含多个子CR,其中包括代表核心组件的 CR Harbor以及相关服务(如 PostgreSQL 数据库、Redis 缓存和后端存储等)。有几种方法可以配置符合需求的 Harbor 的环境。
如果用户已经安装了一些外部的服务,那么Harbor 可以通过简单地设置来使用这些后端存储服务,具体来说,就是配置 imageChartStorage 规范、数据库服务的数据库规范和缓存服务的 redis 规范即可。
如果希望让 Harbor Operator 将相关的依赖服务和 Harbor 组件一起部署到 Kubernetes 集群中,只需要通过设置后端存储服务的 inClusterStorage 规范、数据库服务的 inClusterDatabase 规范和缓存服务的 inClusterCache 规范来声明相关需求。
目前默认的集群存储服务是 Minio,默认集群数据库是 zalando postgreSQL,默认集群缓存是 spotahome redis。Harbor 团队的计划是在将来验证其他第 3 方运营商并添加到 Harbor Operator 中。
为了通过 operator 成功部署 Harbor,用户需要在 HarborCluster CR 规范中配置和启用集群内服务之前,确保首先部署了相应的底层 operator。Harbor operator 代码库提供了一个多合一的部署清单,用于使用一个命令部署所有底层Operator以及 Harbor operator 本身。有关部署的其他选项,请参阅详细的安装指南。
Harbor仓库由多个服务组件组成。在 Harbor Operator中,每个服务组件都由具有自己的CR和对应的协调(reconciling)控制器,组件协调控制器共享相同的协调流程。每个组件 CR 由上面提到的顶层Harbor CR 拥有和控制。
组件分为两组:核心组件和可选组件。核心组件包括Portal、Core、Jobservice、Registry 和 Registry Controller,它们必须默认安装。Notary(服务器和签名者)、Trivy、Chartmuseum 和 Metrics Exporter 是可选的,可通过在规范中明确配置来添加到 Harbor 部署中。
Harbor Operator利用 cert-manager 项目来生成和管理 Harbor 所需的相关证书。为了暴露相关的访问服务,采用了 ingress (v1beta1)。目前为止, NGINX(默认)、GCE 和 NCP ingress 控制器已经验证完毕。
Harbor Operato r的特点如下:
1. 在部署中提供可深度定制能力(由 HarborCluster CR 提供)
- 最小化部署:仅配置核心组件,包括 Harbor Core、Registry、Registry Controller、Job Service 和 Web Portal 。
- 标准部署:在最小化部署的基础上,增加部署可选组件,例如 Notary、Trivy、ChartMuseum 和 Metrics Exporter 。
- 完全部署:提供数据库(PostgreSQL)、缓存(Redis)、存储(MinIO)等相关依赖服务
2. 支持配置集群外部或集群内部署的依赖服务
3. 支持多种后端存储配置
- 文件系统:配置为使用 Kubernetes 卷中的目录树的存储驱动程序。
- os3:将对象存储在 Amazon S3 存储桶中的驱动程序。
- oswift:在 Openstack Swift 中存储对象的驱动程序。
4. 支持更新已部署的Harbor集群
5. 可配置单个组件的副本数量
6. 支持就地升级
7. 删除Harbor集群时删除所有链接的资源
8. 使用 ConfigMap 以声明方式配置 Harbor 系统设置
9. 支持通过ingress暴露的服务(NGINX、GCE、NSX NCP)
Harbor 社区后续工作包括使 Harbor Operator能够使用 Contour 入口控制器 以及验证 OpenShift 平台上的兼容性等。完整的路线图请参考原文:
https://www.cncf.io/blog/2021/06/09/harbor-operator-1-0-is-available-now/
感谢以下Harbor 社区成员对此 Operator 的贡献: @holyhope, @steven-zou, @sguyennet, @jMonsinjon, @mhurtrel, @heww, @bitsf, @wangcanfengxs, @Ghostbaby, @soulseen, @chlins, @XavierDuthil。
《Harbor权威指南》目前京东优惠中,点击下图直接购买。
要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。
相关文章
- 工具推荐|热带气旋数据分析和可视化
- 流程图绘制工具推荐:OmniGraffle Pro Mac下载
- 第六章·自动化运维工具-Ansible Jinja2模板
- 06-React状态管理 Redux(工作流程, 核心概念, 求和案例, 异步Action, React-Redux, 多状态管理, 纯函数, 高阶函数, Redux开发者工具)
- 高度定制化 Git 工作流工具,上手简单,功能强大,性能优异
- 【运维工具】当你的老板站在你背后,看你处理故障......
- ansible自动化运维工具环境准备
- Towhee 可视化工具,帮你理解AI模型!
- 安全运维 | tcprepaly工具的安装与使用!
- 分享一个免费并开源的SSH连接工具
- 安全运维 | 七款常用Linux远程连接工具
- Web 应用中的 RAIL 模型 和 Chrome 开发者工具 Performances 面板对其的度量方法
- 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )
- 自动化运维工具:jumpserver/jms_all详解程序员
- Linux运维:优化管理工具的使用(linux运维工具)
- 探究Linux 连接工具的多样性(连接linux工具有哪些)
- 微软宣布Moca协作工具项目获得成功 即将并入Outlook
- Linux引导工具:安全、灵活、高效(linux引导工具)
- Intel 发布一款新的调整 GPU 主频的开源工具
- Kali下常用安全工具中文参数说明(160个)
- 提升运维效率Redis运维工具抢先使用(redis 运维工具)
- 使用Redis集群可视化工具提高运维效率(redis集群可视化工具)
- Oracle CHM工具提升数据中心运维效率(oracle chm工具)
- 了解WEB页面工具语言XML(六)展望
- sql编程工具SqlPrompt下载及安装破解图文教程